Fonte: Médio Esta postagem ajudará você a entender melhor como lidar com exceções de maneira eficaz em Java. Lidar com exceções Java pode ser um desafio. Pode ser difícil determinar quais exceções Java tratar, quais exceções relançar e quais simplesmente ignorar. No entanto, há uma série de diretrizes úteis que podem ajudá-lo efetivamente a lidar com exceções e a criar novos aplicativos. Vamos conhecê-los.
- Tenha cuidado com o que você registra.
- Não ignore exceções lançadas.
- Use um manipulador de exceções global.
- Não feche os recursos manualmente.
- Lance antecipadamente e lide com exceções mais tarde.
- As exceções Java não devem ser registradas e lançadas novamente.
- Examine exceções suprimidas.
- Na instrução throw, declare exceções com precisão.
- Lide primeiro com a exceção mais óbvia.
- Use a semântica moderna de tratamento de exceções.
1. Tenha cuidado com o que você registra
Os desenvolvedores de software devem estar sempre cientes dos direitos de seus clientes à segurança e à privacidade.- Um programa Java pode mover dados para outros sistemas, e um grande número de desenvolvedores e administradores podem trabalhar com ele (incluindo a correção de bugs).
- Se quaisquer dados confidenciais forem registrados nos arquivos de log, sua empresa não estará em conformidade com os requisitos de segurança e você poderá perder seu emprego.
2. Não ignore exceções lançadas
Não capture uma exceção e depois ignore-a. Ocultar exceções não é uma boa maneira de lidar com elas em Java. No mínimo, anote o nome da exceção e a mensagem associada. Dessa forma, informações sobre o problema podem ser encontradas em sua entrada. A depuração de aplicativos Java devido a exceções ocultas é incrivelmente difícil.3. Use um manipulador de exceções global
Durante a execução do programa sempre existirão algumas exceções que não foram capturadas anteriormente no seu código. Portanto, sempre adicione um manipulador de exceções global para tratar exceções não detectadas. Isso não apenas permitirá que a exceção seja registrada e tratada, mas também evitará que o aplicativo trave se uma exceção for lançada em tempo de execução.4. Não feche recursos manualmente
Outra recomendação importante ao lidar com exceções Java é permitir que a JVM chame o método close() nos recursos que estão sendo fechados. Não tente fechá-los sozinho. Isso pode ser facilmente alcançado inicializando os recursos dentro do módulo try-resources . Semântica:public class TryWithResourcesExample {
public static void main(String[] args) throws Exception {
try (Door door = new Door()) {
door.swing();
} catch (Exception e) { ..... }
} finally { .....}
}
}
Como você pode ver, após a conclusão do bloco try...catch, a JVM fecha o recurso para você, eliminando a possibilidade de vazamentos de recursos complexos e difíceis de corrigir.
5. Lançar cedo e tratar exceções depois
Lance uma exceção sempre que ocorrer uma condição de exceção em seu código. Não espere a execução de nenhuma linha de código antes de sair do método em que você está. Ao capturar exceções, a função deve ser colocada no final do método. Isso reduz o número de blocos catch em seus métodos, tornando seu código mais fácil de ler e manter.6. Exceções Java não devem ser registradas e lançadas novamente
Se ocorrer uma exceção, siga um destes procedimentos:- Continue trabalhando com seu programa enquanto registra a exceção.
- Lance a exceção novamente e permita uma maneira diferente de registrar dados.
try {
Class.forName("com.min.Example");
} catch (ClassNotFoundException ex) {
log.warning("Class was not found.");
throw ex;
}
Isso resulta na duplicação de código e nos arquivos de log obstruídos com entradas duplicadas, tornando muito mais difícil diagnosticar o código.
GO TO FULL VERSION