Uma exceção de Java é um objeto que descreve uma exceção (ou seja, um erro) que ocorre em um segmento de código. Quando ocorre uma exceção, um objeto que representa a exceção é criado e jogado no método que causa o erro. Este método pode optar por lidar com a exceção ou passá -lo. Nos dois casos, a exceção é capturada e processada. A exceção pode ser gerada pelo sistema de tempo de execução Java ou pelo seu código manual. A exceção lançada pelo Java está relacionada a erros básicos que violam as especificações do idioma ou excedem as limitações do ambiente de execução de Java. As exceções geradas pela codificação manual são basicamente usadas para relatar condições de erro no chamador de método.
O manuseio de exceção do Java é controlado por 5 palavras -chave: tente, capturar, jogar, arremessar e finalmente. Aqui está como eles funcionam. O programa declara que o monitoramento de exceção que você deseja está incluído em um bloco de tentativa. Se ocorrer uma exceção no bloco de tentativa, ele será jogado. Seu código pode capturar esta exceção (com captura) e lidar com isso de alguma maneira razoável. A exceção gerada pelo sistema é jogada automaticamente pelo sistema de tempo de execução do Java. Jogue manualmente uma exceção, usando o arremesso de palavras -chave. Qualquer exceção ao método jogado deve ser definido pela cláusula de arremesso. Qualquer código que seja absolutamente executado antes do retorno do método seja colocado no bloco Finalmente.
Aqui está a forma usual de um bloco de manuseio de exceção:
tente {// bloco de código para monitorar erros} Catch (excepctyPe1 exob) {// Exception Handler for ExceptionType1} Catch (ExceptionTyPE2 EXOB) {// Exceto manipulador de íons para excepçãoType2} // ... finalmente {// bloco de Código a ser executado antes de tentar o bloco extremamente}
Aqui, o ExceptionType é o tipo em que a exceção ocorreu.
Todos os tipos de exceção são subclasses da classe integrada jogável. Portanto, o jogável está no nível superior da hierarquia de classe de exceção. Imediatamente após o arremesso, há duas subclasses que dividem a exceção em dois ramos diferentes. Uma filial é uma exceção.
Esta classe é usada para exceções que podem ser capturadas pelo programa de usuário. É também uma classe que você pode usar para criar sua própria subclasse do tipo de exceção do usuário. Existe uma importante subclasse RuntimeException na filial de exceção. Esse tipo de exceção é definido automaticamente para o programa que você escreve e inclui erros como a divisão por zero e a indexação de matriz ilegal.
Outro tipo de ramificação é o nível superior com erro, que define exceções que não se destinam a ser capturadas por programas em ambientes normais. Uma exceção do erro de tipo é usada no sistema Java Runtime para exibir erros relacionados ao próprio sistema de tempo de execução. O estouro de pilha é um exemplo desse erro. Este capítulo não discutirá o tratamento de exceções para os tipos de erros, porque geralmente são erros catastróficos e fatais que não são algo que seu programa pode controlar.