Índice:
- Manipulação de erro opcional
- Manipulação de erros mais específicos para menos específicos
- Usando objetos opcionais para evitar exceções
Vídeo: Curso de Java 52: Exceptions: criando sua própria exceção 2024
Muitos dos exemplos de código Java que você encontra para fins de aprendizagem incluirão erro de captura neles. Os exemplos não o enterrarão por erro de armadilha, mas eles farão boas técnicas de captura de erro, parte do código do aplicativo sempre que possível (e o código de trapping de erro não esconde completamente a finalidade do exemplo).
Com isso em mente, as seções a seguir fornecem uma visão geral das técnicas utilizadas para detectar erros. Você verá três níveis diferentes de armadilhas de erro comumente empregadas em aplicativos Java.
A captura de erro é o ato de detectar uma exceção e dizer ao JRE que planeja fazer algo com ele. O JRE responde ao não transmitir o erro ao chamador do método atual e, em vez disso, depende do método atual para corrigir o problema.
A captura de erro normalmente está associada à parte de tentativa de uma tentativa … declaração catch, enquanto o tratamento de erros normalmente está associado à parte catch de uma declaração try … catch.
Manipulação de erro opcional
A frase "tratamento de erros opcional" é um pouco de um incorreto. É opcional apenas porque o Java não exige que você o execute como parte do uso dos vários objetos em seu aplicativo. Cada aplicativo que você constrói deve incluir algum nível de tratamento de erros, mesmo que o Java não exija que você adicione.
De fato, adicionar o tratamento de erros a cada aplicativo que você cria, mesmo aplicativos de teste simples, o ajudarão a tornar-se proficiente neste aspecto da programação Java e colocá-lo à frente de desenvolvedores que não seguem esta prática.
O tratamento de erros é o ato de resolver uma exceção que o aplicativo aprisionou. Em alguns casos, lidar com o erro significa exibir uma mensagem para o usuário e pedir uma correção. No entanto, o tratamento de erros pode assumir várias formas, algumas delas completamente automatizadas e invisíveis para o usuário. Este ato normalmente está associado à parte de captura de uma instrução try … catch.
Manipulação de erros mais específicos para menos específicos
A maioria dos aplicativos pode gerar mais de uma exceção. Além disso, talvez você não consiga detectar com precisão as exceções que um aplicativo irá gerar. Neste caso, você precisa fornecer várias cláusulas de captura para a instrução try … catch. Cada cláusula catch é especializada em um tipo particular de erro.
Além disso, você pode usar manipuladores de exceções genéricos para essas situações quando seu aplicativo encontra erros que não estão dentro do conjunto que você antecipou originalmente.
Usando objetos opcionais para evitar exceções
De todas as exceções que você pode ver ao trabalhar com Java, o NullPointerException (ou NPE) é o mais prevalente e, às vezes, o mais difícil de diagnosticar. Uma NullPointerException acontece quando você passa um valor nulo para uma função Java que esperava um valor real. O problema é que nem todas as situações que criam um NPE são realmente um problema.
Às vezes você espera ter um valor nulo e precisar de algum método para lidar com isso. Por exemplo, considere a situação em que deseja encontrar um valor específico em uma lista de valores potenciais. É perfeitamente possível que você não encontre o valor desejado, resultando em um retorno de valor nulo.
Se você tentar processar o valor nulo, você obtém um NPE. Como você esperava que os valores nulos ocorressem, encontrar o erro pode ser horrivelmente difícil.
Até agora, era difícil para desenvolvedores humanos entender o pensamento preto e branco de um computador. O Java 8 agora fornece objetos opcionais para lidar com a situação em que um valor de retorno de uma função é opcional em vez de necessário.