Imagem do artigo Tratamento de exceções e a hierarquia de exceções em Java: Tipos de exceções (checked e unchecked)

17.4. Tratamento de exceções e a hierarquia de exceções em Java: Tipos de exceções (checked e unchecked)

Página 106 | Ouça em áudio

17.4. Tratamento de Exceções e a Hierarquia de Exceções em Java

O tratamento de exceções é um aspecto fundamental na programação em Java. Uma exceção é um evento que ocorre durante a execução de um programa e que interrompe o fluxo normal de instruções. O mecanismo de exceções em Java fornece uma maneira de separar o código de tratamento de erros do código regular e permite que um método retorne informações sobre problemas ocorridos durante a execução.

Tipos de Exceções em Java

Em Java, as exceções são divididas em duas categorias principais: checked exceptions e unchecked exceptions.

Checked Exceptions

As checked exceptions são aquelas que o compilador exige que sejam tratadas ou declaradas no método que as gera. Elas são usadas para problemas que o programador deve antecipar e tratar adequadamente, geralmente são problemas externos ao controle do programa, como problemas de I/O (Input/Output), falhas de rede, etc. Exemplos de checked exceptions incluem IOException, SQLException e ClassNotFoundException.

Unchecked Exceptions

Já as unchecked exceptions incluem as subclasses de Error e RuntimeException. Estas são exceções que o compilador não exige que sejam tratadas ou declaradas, e geralmente são resultantes de erros no próprio código, como acessar um índice fora dos limites de um array (ArrayIndexOutOfBoundsException) ou tentar acessar um objeto através de uma referência nula (NullPointerException).

Hierarquia de Exceções em Java

A classe base para todas as exceções em Java é a Throwable. A partir dela, derivam duas subclasses importantes: Error e Exception. A classe Error é projetada para situações que normalmente não são esperadas para serem capturadas ou tratadas pelo seu programa, como OutOfMemoryError ou StackOverflowError. Já a classe Exception é a base para todas as exceções que podem ser tratadas e possuem duas categorias principais: checked exceptions e unchecked exceptions, como mencionado anteriormente.

Tratamento de Exceções

O tratamento de exceções em Java é feito por meio de blocos try, catch e finally. O bloco try contém o código que pode gerar uma exceção, enquanto o bloco catch é usado para capturar e tratar a exceção. O bloco finally, que é opcional, contém código que é sempre executado após o bloco try, independentemente de uma exceção ter sido lançada ou não.

try {
    // código que pode lançar uma exceção
} catch (TipoExcecao1 e) {
    // tratamento para TipoExcecao1
} catch (TipoExcecao2 e) {
    // tratamento para TipoExcecao2
} finally {
    // código que é sempre executado após o bloco try, com ou sem exceções
}

É possível capturar múltiplas exceções em um único bloco catch usando o operador pipe (|), isso é útil quando o mesmo bloco de código pode gerar exceções diferentes, mas o tratamento para todas elas é o mesmo.

try {
    // código que pode lançar exceções diferentes
} catch (TipoExcecao1 | TipoExcecao2 e) {
    // tratamento comum para TipoExcecao1 e TipoExcecao2
}

Propagação de Exceções

Quando uma exceção é lançada e não é capturada no mesmo método, ela se propaga para cima na pilha de chamadas de métodos até encontrar um bloco catch que possa tratá-la. Se nenhum bloco catch adequado for encontrado, o programa é terminado e a pilha de chamadas é impressa, o que ajuda no diagnóstico do problema.

Boas Práticas no Tratamento de Exceções

Quando se trata de exceções, é importante seguir algumas boas práticas:

  • Trate apenas exceções que você pode realmente lidar.
  • Evite capturar Throwable, Exception ou RuntimeException a menos que seja absolutamente necessário, pois isso pode capturar exceções não previstas e esconder bugs.
  • Não use exceções para controle de fluxo em seu programa.
  • Forneça mensagens de erro úteis e detalhadas.
  • Limpe recursos em um bloco finally ou use o recurso de try-with-resources do Java 7 em diante para garantir que os recursos sejam fechados automaticamente após o uso.

O tratamento eficaz de exceções é essencial para construir programas robustos e confiáveis. Ao compreender os tipos de exceções, a hierarquia de exceções e as práticas recomendadas, você estará bem equipado para lidar com os desafios que surgem durante a programação em Java.

Agora responda o exercício sobre o conteúdo:

Qual das seguintes afirmações é verdadeira sobre o tratamento de exceções em Java?

Você acertou! Parabéns, agora siga para a próxima página

Você errou! Tente novamente.

Imagem do artigo Tratamento de exceções e a hierarquia de exceções em Java: Hierarquia de exceções em Java

Próxima página do Ebook Gratuito:

107Tratamento de exceções e a hierarquia de exceções em Java: Hierarquia de exceções em Java

4 minutos

Ganhe seu Certificado deste Curso Gratuitamente! ao baixar o aplicativo Cursa e ler o ebook por lá. Disponível na Google Play ou App Store!

Disponível no Google Play Disponível no App Store

+ de 6,5 milhões
de alunos

Certificado Gratuito e
Válido em todo o Brasil

48 mil exercícios
gratuitos

4,8/5 classificação
nas lojas de apps

Cursos gratuitos em
vídeo, áudio e texto