Índice:
- Erros de lançamento em condições excepcionais
- Passando erros para o chamador
- Manuseio de erros exigido
Vídeo: Curso de Java 47: Exceptions: try, catch 2024
É essencial que seu código Java faça todos os esforços para resolver um problema. No entanto, há momentos em que seu código simplesmente não possui informações, recursos, direitos ou algum outro requisito para corrigir um problema.
Quando isso acontece, seu código lança um erro usando um objeto de exceção. O termo exceção é apropriado porque deve ser a exceção à regra, em vez do primeiro ato que o aplicativo executa. Mesmo assim, as aplicações enfrentam erros que exigem medidas excepcionais, e as seções a seguir descrevem como lidar com esse tipo de situações.
Erros de lançamento em condições excepcionais
Para a prática, você pode criar uma aplicação que pode gerar vários tipos de erros. Normalmente, você não lançaria um erro se um valor estiver no intervalo errado - você exibiria uma mensagem diretamente no usuário. No entanto, você pode criar um exemplo que demonstra como jogar e capturar um erro dentro de um método.
Passando erros para o chamador
Muitos exemplos de código que você começa são apenas começando a chegar ao ponto em que você está chamando métodos do main (). O método principal () é sempre o nível superior do seu aplicativo. À medida que você chama métodos, os métodos que você chama formam níveis adicionais.
Por exemplo, um método chamado de main () seria no segundo nível de sua aplicação. Se esse método tivesse que chamar outro método, esse método seria no terceiro nível, e assim por diante. A maioria dos aplicativos é constituída por muitos níveis de chamadas.
Na verdade, quando você vê uma exceção na tela, ele realmente exibe uma lista dos métodos que chamaram de método atual em um formato denominado pilha de chamadas .
A pilha de chamadas é uma lista de métodos e a ordem em que são chamados por outros métodos. Conhecer a pilha de chamadas pode ajudá-lo a localizar a origem de um erro potencial quando não acontece no nível atual do aplicativo.
Os erros de manipulação são uma parte essencial da boa prática de programação. Se você deseja aplicações robustas que não falham constantemente, você deve fornecer um bom tratamento de erros. No entanto, tentar lidar com um erro quando você não possui informações suficientes para lidar com esse erro também é um problema.
Quando seu código tenta corrigir um erro em um nível muito baixo, ele oculta o erro de um nível que possivelmente pode corrigi-lo. Sim, você deseja corrigir um erro no nível mais baixo possível, mas não às custas de fornecer um reparo que realmente poderia acabar escondendo algo mais grave.
Quando você acha que um determinado nível de um aplicativo não possui os recursos necessários, informações, privilégios, acesso do usuário ou algum outro item necessário para lidar com um erro, você emitirá uma instrução throw com o objeto de exceção apropriado.O nível anterior do aplicativo receberá a exceção e determinará se ele pode lidar com isso.
No entanto, se o método main () receber a exceção, então você deve determinar o que fazer com o erro, ou o aplicativo falhará. É geralmente considerado uma prática de programação ruim para simplesmente deixar o aplicativo falhar - você precisa encontrar alguma maneira de lidar com erros que o aplicativo encontra.
Manuseio de erros exigido
O Java fornece dois tipos de exceções: verificados (aqueles monitorados pelo JRE) e desmarcados (aqueles que não são monitorados pelo JRE). Você tem a opção de lidar com uma exceção não verificada. No entanto, Java obriga você a lidar com uma exceção verificada. Seu código não compilará mesmo se você tentar usar um método que tenha uma exceção verificada associada a ele.
Uma exceção verificada é aquela que o JRE é informado pela definição de classe a monitorar. O JRE força o usuário da classe a fornecer o tratamento da exceção para garantir que a classe seja executada de forma confiável.
Todos os tipos de detalhes estranhos estão associados a exceções verificadas e não verificadas. Uma maneira fácil de saber se uma exceção é verificada é conhecer a classe pai. Todas as exceções que estão subclassed das classes Error ou RuntimeException são desmarcadas - todas as outras exceções são verificadas.
A melhor prática é lidar com todas as exceções em seu aplicativo e você não terá que se preocupar se uma exceção é verificada ou desmarcada. Um ótimo desenvolvedor sempre lida com erros potenciais - essa é a linha inferior.