Classes de Exceção em java.lang:
- Java define várias classes de exceção no pacote java.lang, muitas delas são subclasses de RuntimeException.
- Exceções em java.lang são importadas automaticamente em qualquer programa Java.
Exceções Não Verificadas (Unchecked Exceptions):
- Incluem erros comuns, como NullPointerException, ArrayIndexOutOfBoundsException e ArithmeticException.
- Não precisam ser declaradas na cláusula throws dos métodos, pois o compilador não exige tratamento específico para essas exceções.
Exemplos de exceções não verificadas:
ArithmeticException: erro de cálculo, como divisão por zero.
NullPointerException: uso de referência nula.
ClassCastException: tentativa de conversão inválida de classe.
NumberFormatException: erro na conversão de String para um número.
Exceções Verificadas (Checked Exceptions):
Necessitam estar listadas em throws caso o método possa lançá-las.
São obrigatórias para exceções que o compilador exige o tratamento, pois não podem ser ignoradas.
Exemplos de exceções verificadas:
ClassNotFoundException: classe não encontrada.
IllegalAccessException: acesso negado a uma classe.
InterruptedException: interrupção de uma thread por outra thread.
NoSuchMethodException: método solicitado não existe.
Exceções Encadeadas (Chained Exceptions):
Introduzidas no Java 1.4 para especificar uma exceção como causa de outra.
Permitem associar uma exceção original à exceção gerada, útil em cenários com camadas de erros.
Construtores para exceções encadeadas:
Throwable(Throwable cause): define a exceção causadora.
Throwable(String msg, Throwable cause): permite adicionar uma mensagem descritiva.
Métodos:
getCause(): retorna a causa da exceção atual.
initCause(Throwable cause): define a causa após a criação da exceção.
Considerações sobre Exceções Encadeadas:
Úteis quando o conhecimento da causa raiz ajuda a entender o erro.
Nem todo programa precisa usar exceções encadeadas, mas elas oferecem uma solução elegante para cenários complexos.
Top comments (0)