Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Java

Tente Catch em Java:Exemplo de manipulação de exceção

O que é exceção em Java?


Exceção em Java é um evento que interrompe a execução das instruções do programa e perturba o fluxo normal de execução do programa. É um objeto que encapsula uma informação de evento de erro que ocorreu dentro de um método e é passada para o sistema de tempo de execução. Em Java, as exceções são usadas principalmente para indicar diferentes tipos de condições de erro.

Neste tutorial, você aprenderá-

Existem dois tipos de erros:
  1. Erros de tempo de compilação
  2. Erros de tempo de execução

Erros de tempo de compilação podem ser novamente classificados em dois tipos:

Exemplo de erros de sintaxe:

Em vez de declarar int a; você o declarou erroneamente como in a; para qual compilador lançará um erro.

Exemplo:Você declarou uma variável int a; e depois de algumas linhas de código você declara novamente um inteiro como int a; . Todos esses erros são destacados quando você compila o código.

Exemplo de erros de tempo de execução

Um erro de tempo de execução é chamado de Exceções erro. É qualquer evento que interrompa o fluxo normal de execução do programa.

Exemplos de exceções são, exceção aritmética, exceção de Nullpointer, exceção de divisão por zero, etc.

Exceções em Java são algo que está fora do controle dos desenvolvedores.


Clique aqui se o vídeo não estiver acessível

Por que precisamos de exceção?


Suponha que você tenha codificado um programa para acessar o servidor. As coisas funcionaram bem enquanto você estava desenvolvendo o código.



Durante a execução real da produção, o servidor está inativo. Quando seu programa tentou acessá-lo, uma exceção é gerada.


Como lidar com exceção


Até agora vimos, a exceção está além do controle do desenvolvedor. Mas culpar sua falha de código por questões ambientais não é uma solução. Você precisa de uma Programação Robusta, que cuide de situações excepcionais. Esse código é conhecido como Tratador de Exceções.

Em nosso exemplo, um bom tratamento de exceção seria, quando o servidor estiver inativo, conectar-se ao servidor de backup.



Para implementar isso, insira seu código para se conectar ao servidor (usando as condições tradicionais if e else).

Você verificará se o servidor está inativo. Se sim, escreva o código para se conectar ao servidor de backup.

Essa organização de código, usando o loop “if” e “else” não é eficaz quando seu código tem várias exceções java para manipular.

class connect{
	if(Server Up){
	 // code to connect to server
	}
	else{
	 // code to connect to BACKUP server
	}
}

Experimente o bloqueio de captura


Java fornece um tratamento excepcional embutido.
  1. O código normal vai para um TRY bloquear.
  2. O código de tratamento de exceção vai para o CATCH bloquear



Em nosso exemplo, o bloco TRY conterá o código para se conectar ao servidor. O bloco CATCH conterá o código para conectar ao servidor de backup.

Caso o servidor esteja ativo, o código no bloco CATCH será ignorado. Caso o servidor esteja inativo, uma exceção é lançada e o código no bloco catch será executado.



Então, é assim que a exceção é tratada em Java.

Sintaxe para usar try &catch

try{
    statement(s)
}
catch (exceptiontype name){
	statement(s)
}

Exemplo

Etapa 1) Copie o seguinte código em um editor
class JavaException {
   public static void main(String args[]){
      int d = 0;
      int n = 20;
      int fraction = n/d;
     System.out.println("End Of Main");
   }
}

Etapa 2) Salve o arquivo e compile o código. Execute o programa usando o comando java JavaException

Etapa 3) Uma exceção aritmética – a divisão por zero é mostrada abaixo para a linha # 5 e a linha # 6 nunca é executada

Etapa 4) Agora vamos ver como o try e catch nos ajudará a lidar com essa exceção. Colocaremos a exceção causando a linha de código em um try bloco, seguido por uma captura quadra. Copie o código a seguir no editor.
class JavaException {
 public static void main(String args[]) {
  int d = 0;
  int n = 20;
  try {
   int fraction = n / d;
   System.out.println("This line will not be Executed");
  } catch (ArithmeticException e) {
   System.out.println("In the catch Block due to Exception = " + e);
  }
  System.out.println("End Of Main");
 }
}

Etapa 5) Salve, compile e execute o código. Você obterá a seguinte saída



Como você observa, a exceção é tratada e a última linha de código também é executada. Além disso, observe que a linha 7 não será executada porque assim que uma exceção é gerada, o fluxo de controle salta para o bloco catch.

Observação: O objeto AritmeticException “e” carrega informações sobre a exceção que ocorreu, o que pode ser útil na execução de ações de recuperação.

Hierarquia de classe de exceção Java


Depois que uma instrução catch é executada, as outras são ignoradas e a execução continua após o bloco try/catch. Os blocos catch aninhados seguem a hierarquia de exceção.



Exemplo: Para entender o aninhamento de blocos try e catch

Etapa 1) Copie o código a seguir em um editor.
class JavaException {
 public static void main(String args[]) {
  try {
   int d = 1;
   int n = 20;
   int fraction = n / d;
   int g[] = {
    1
   };
   g[20] = 100;
  }
  /*catch(Exception e){
  	System.out.println("In the catch block due to Exception = "+e);
  }*/
  catch (ArithmeticException e) {
   System.out.println("In the catch block due to Exception = " + e);
  } catch (ArrayIndexOutOfBoundsException e) {
   System.out.println("In the catch block due to Exception = " + e);
  }
  System.out.println("End Of Main");
 }
}

Etapa 2) Salve o arquivo e compile o código. Execute o programa usando o comando java JavaException .

Etapa 3) Um ArrayIndexOutOfBoundsException é gerado. Altere o valor de int d para 0. Salve, compile e execute o código.

Etapa 4 ) Um ArithmeticException deve ser gerado.

Etapa 5) Retire o comentário da linha #10 para a linha #12. Salve, compile e execute o código.

Etapa 6) Erro de compilação? Isso ocorre porque Exception é a classe base de ArithmeticException Exception. Qualquer exceção que é levantada por ArithmeticException pode ser tratada pela classe Exception também. Assim, o bloco catch de ArithmeticException nunca terá a chance de ser executado, o que o torna redundante. Daí o erro de compilação.

Java finalmente bloquear


O bloco finally é executado independentemente de uma exceção ser levantada no bloco de tentativas. É opcional para usar com um bloco try.
 try {
  statement(s)
 } catch (ExceptiontType name) {

  statement(s)

 } finally {

  statement(s)

 }

Caso uma exceção seja levantada no bloco try, o bloco finally é executado após a execução do bloco catch.

Exemplo

Etapa 1) Copie o código a seguir em um editor.
class JavaException {
   public static void main(String args[]){
    try{
       int d = 0;
       int n =20;
       int fraction = n/d;
    }
  catch(ArithmeticException e){
    System.out.println("In the catch block due to Exception = "+e);
  }
  finally{
	System.out.println("Inside the finally block");
  }
}
}

Etapa 2) Salve, compile e execute o código.

Etapa 3) Saída esperada. Finalmente, o bloco é executado mesmo que uma exceção seja levantada.

Etapa 4) Altere o valor da variável d =1. Salve, Compile e Execute o código e observe a saída.Bottom of Form

Resumo :

Java

  1. Manipulação de Exceções do Python Usando a instrução try, except e finally
  2. Manipulação de Exceções Java
  3. Java tentar... pegar
  4. Java captura múltiplas exceções
  5. Manipulação de Exceções C++:Try, Catch, Throw Exemplo
  6. Método Java String charAt() com exemplo
  7. Java String EndsWith() Método com Exemplo
  8. Java BufferedReader:Como Ler Arquivo em Java com Exemplo
  9. Algoritmo de ordenação por inserção em Java com exemplo de programa
  10. Manipulação de exceção do Python:tente, pegue, finalmente e aumente [Exemplo]