Article image
Junio Silva
Junio Silva09/02/2024 17:50
Compartilhe

Entendo Try Catch e suas Exceções

  • #Java

A linguagem Java tem mecanismo especial para o tratamento de erros que possam ocorrer em tempo de execução do programa.

O surgimento de um erro ocasiona a interrupção imediata do programa, porém em Java podemos tratar esta situação de erro de uma forma adequada com uso de exceções para evitar a interrupção do programa.

A exceção da classe java e representada na sua forma mais genéria pela classe java.lang.Exception, que em todas exceções que ocorram ao longo da execução do seu programa pode ser tratada como objeto do tipo Exception.

O que Try Catch ou bloco Try e bloco catch?

O try e catch são blocos utilizados para tratamento de exceções. O bloco try é usado para envolver o código que pode gerar exceções, enquanto o bloco catch é usado para capturar e lidar com essas exceções caso elas ocorram.

O bloco "try" é utilizado para envolver o código que pode gerar exceções.

Dentro deste bloco, você coloca o código que deseja monitorar quanto a possíveis erros. Por exemplo, operações que envolvem entrada de dados do usuário, leitura de arquivos, conexões de rede, etc.

O bloco "catch" é utilizado para capturar e tratar exceções que ocorrem dentro do bloco try. Você pode ter vários blocos catch para diferentes tipos de exceções.

Quando uma exceção ocorre dentro do bloco try que não e executado, o fluxo de controle é transferido para o bloco catch correspondente a aquela exceção específica que está ocorrendo.

Exemplo de try catch:

public class try_catch_ {
  public static void main(String[] args) {
      try {
          // Código que pode gerar uma exceção

          int resultado = dividir(10, 0); // Exemplo de divisão por zero
          System.out.println("O resultado da divisão é: " + resultado);

      } catch (ArithmeticException e) {
          // Código para lidar com a exceção ArithmeticException
          System.err.println("Erro de divisão por zero: " + e.getMessage());
      }

  }

  // Método para divisão que pode gerar uma exceção
  public static int dividir(int numerador, int denominador) {
      return numerador / denominador;
  }
}

Neste exemplo, o método dividir() está dentro do bloco try. Se ocorrer uma exceção durante a execução deste método (por exemplo, uma divisão por zero), a execução do bloco try é interrompida e o controle passa para o bloco catch, onde a exceção é capturada e tratada. No caso específico do exemplo, a mensagem de erro é impressa indicando que ocorreu uma divisão por zero.

Conforme o livro deitel volume 10, pagina 354.

"O tratamento de exceção fornece uma técnica única e uniforme para documentar, detectar e recuperar-se de erros. Isso ajuda os programadores que trabalham em grandes projetos a entender o código de processamento de erro uns dos outros."

E o bloco Finally?

O "finally" sempre finaliza a sequência de comandos do sistema, independente de ocasionar o erro, no caso se não tiver erros vai exibir o que está no try e o finally executa e se estiver erro vai executa as exceções do catch e o finally executa o seu bloco.

Exemplo de Finally:

public class try_catch_ {
  public static void main(String[] args) {
      try {
          // Código que pode gerar uma exceção

          int resultado = dividir(10, 5); // Exemplo de divisão por zero
          System.out.println("O resultado da divisão é: " + resultado);

      } catch (ArithmeticException e) {
          // Código para lidar com a exceção ArithmeticException
          System.err.println("Erro de divisão por zero: " + e.getMessage());
      }finally {
          System.out.println("Finalizado a expressão!");
      }

  }

  // Método para divisão que pode gerar uma exceção
  public static int dividir(int numerador, int denominador) {
      return numerador / denominador;
  }
}

Esse bloco é opcional, não sendo obrigatório sua inserção na sequência try/catch. É usado em ações que sempre precisam ser executadas independente se gerar erro.

Aqui está uma explicação passo a passo sobre uma exceção:

  • try: O bloco try é usado para envolver o código que pode lançar uma exceção. Ele começa com a palavra-chave try seguida por um bloco de código delimitado por chaves. Dentro deste bloco, você coloca o código que você suspeita que possa gerar uma exceção.
  • catch: O bloco catch é usado para capturar e lidar com exceções que são lançadas dentro do bloco try. Ele começa com a palavra-chave catch seguida por um par de parênteses que contém o tipo de exceção que você deseja capturar e uma variável que representa a exceção. Em seguida, vem um bloco de código delimitado por chaves, onde você coloca o código que deseja executar para lidar com a exceção capturada.
  • Exceção: Se uma exceção ocorrer dentro do bloco try, o fluxo de controle será transferido para o bloco catch correspondente que lida com aquela exceção específica. O tipo da exceção capturada deve ser compatível com o tipo especificado no bloco catch.

Conclusão

 

Neste artigo, exploramos o uso do bloco try-catch em Java para lidar com exceções durante a execução de um programa. Aqui estão os pontos-chave que discutimos:

  • O bloco try é usado para envolver o código que pode gerar exceções.
  • O bloco catch é usado para capturar e lidar com exceções que ocorrem dentro do bloco try.
  • Exceções podem ser capturadas e tratadas usando blocos catch específicos para diferentes tipos de exceções.
  • O bloco finally é opcional e é usado para executar código que deve ser executado independentemente de ocorrer uma exceção ou não, como a limpeza de recursos.
  • É importante lidar com exceções de forma apropriada para garantir a robustez e a confiabilidade do programa.

Com uma compreensão sólida do uso do try-catch, os desenvolvedores podem escrever código mais robusto e resiliente em Java, lidando efetivamente com exceções e garantindo uma experiência de usuário melhor.

Espero que este artigo tenha sido útil para você entender como usar try-catch em Java.

Referências:

livro: Como programa em Java, autor: Haver Deitel e Paul Deitel 10° edição.

https://www.devmedia.com.br/blocos-try-catch/7339

https://www.universidadejava.com.br/java/java-excecoes/

https://www.devmedia.com.br/trabalhando-com-excecoes-em-java/27601#:~:text=Exception%20(java.,para%20conseguir%20realizar%20o%20processamento.

Compartilhe
Comentários (0)