Definição
- Ignorar exceções, especialmente com blocos catch vazios, compromete o propósito das exceções, que é forçá-lo a lidar com condições excepcionais.
- Comparação: Ignorar uma exceção é como ignorar um alarme de incêndio — pode ter consequências desastrosas.
Problemas de ignorar exceções
- Falhas silenciosas:
- O programa pode prosseguir sem alertar sobre erros, causando falhas arbitrárias posteriormente.
- Dificuldade de depuração:
- Sem tratamento ou registro da exceção, informações cruciais para identificar problemas podem ser perdidas.
- Comportamento inesperado:
- O código pode falhar em locais aparentemente sem relação com a origem do erro.
Exemplo de má prática
Um bloco catch vazio que ignora a exceção:
try {
// Código que pode lançar uma exceção
} catch (Exception e) {
// Exceção ignorada!
}
Situações em que ignorar exceções pode ser aceitável
- Exemplo: Fechar um recurso como um FileInputStream, quando o estado do arquivo não foi alterado.
- Regras para ignorar exceções de forma apropriada:
Registre a exceção para análise posterior:
try {
fileInputStream.close();
} catch (IOException e) {
e.printStackTrace(); // Registro da exceção
}
Adicione um comentário explicando por que a exceção está sendo ignorada:
try {
fileInputStream.close();
} catch (IOException ignored) {
// Ignorado porque o arquivo já foi lido com sucesso.
}
Conselhos gerais
Trate a exceção sempre que possível:
Exemplo de tratamento:
try {
// Operação crítica
} catch (IOException e) {
System.err.println("Erro ao realizar a operação: " + e.getMessage());
// Tomar medidas corretivas ou lançar uma exceção mais específica
}
Deixe a exceção se propagar, se necessário:
- Permitir que a exceção seja lançada pode preservar informações importantes para depuração.
public void processFile() throws IOException {
// O chamador decidirá como tratar a exceção
fileInputStream.close();
}
Evite blocos catch genéricos:
Evite capturar todas as exceções indiscriminadamente, como catch (Exception e).
Resumo Final
Nunca ignore exceções sem um motivo claro.
Se ignorar for inevitável:
Explique o motivo com um comentário.
Registre a exceção para facilitar futuras investigações.
Tratar ou propagar exceções de maneira adequada pode evitar falhas silenciosas e facilitar a manutenção e a depuração do código.
Top comments (0)