o que é uma exceção?
uma exceção é um evento indesejado ou inesperado, que ocorre durante a execução de um programa I. E. em tempo de execução, que perturba o fluxo normal das instruções do programa.
erro vs excepção
erro: um erro indica um problema grave que uma aplicação razoável não deve tentar capturar.exceção: exceção indica condições que uma aplicação razoável pode tentar capturar.,
hierarquia de exceção
Todos os tipos de exceção e erros são sub-classes da classe Throwable, que é a classe base da hierarquia.Uma filial é chefiada por exceção. Esta classe é usada para condições excepcionais que os programas de usuário devem pegar. Nullpointerexcepção é um exemplo de tal exceção.Outro branch, erro é usado pelo Java run-time system(JVM) para indicar erros que têm a ver com o próprio ambiente de run-time(JRE). StackOverflowError é um exemplo de tal erro.,
Para verificado vs não verificado exceção, consulte Verificado vs Exceções não verificadas
Como JVM manipular uma Exceção?
Tratamento Por omissão de exceções: sempre que dentro de um método, se tiver ocorrido uma exceção, o método cria um objeto conhecido como objeto de exceção e passa-o para o sistema de tempo de execução(JVM). O objeto de exceção contém nome e descrição da exceção, e o estado atual do programa onde a exceção ocorreu., Criar o objeto de exceção e manuseá-lo para o sistema de tempo de execução é chamado de lançar uma exceção.Pode haver a lista dos métodos que tinham sido chamados para chegar ao método onde a exceção ocorreu. Esta lista ordenada dos métodos é chamada pilha de chamadas.Agora vai acontecer o seguinte procedimento.
- o sistema de tempo de execução procura na pilha de chamadas para encontrar o método que contém bloco de código que pode lidar com a excepção ocorreu. O bloco do código é chamado de manipulador de exceção.,
- O sistema de tempo de execução começa a procurar a partir do método em que a exceção ocorreu, procede através da pilha de chamadas na ordem inversa em que os métodos foram chamados.
- Se encontrar um manipulador adequado, então ele passa a exceção ocorreu para ele. Handler apropriado significa que o tipo de objeto de exceção jogado corresponde ao tipo de objeto de exceção que ele pode lidar.,
- Se o sistema de tempo de execução procura todos os métodos na pilha de chamadas e não conseguiu encontrar o manipulador apropriado , então o sistema de tempo de execução entrega o objeto de exceção para o manipulador de exceção padrão, que é parte do sistema de tempo de execução. Este manipulador imprime a informação de exceção no seguinte formato e termina o programa anormalmente.
Exception in thread "xxx" Name of Exception : Description... ...... .. // Call Stack
ver o diagrama abaixo para entender o fluxo da pilha de chamadas.,>
{
System.out.println(ex.getMessage());
}
}
}
Output :
/ by zero.
How Programmer handles an exception?,
Tratamento Personalizado de excepções: o tratamento de excepções Java é gerido através de cinco palavras-chave: tentar, apanhar, Lançar, Lançar e, finalmente. Brevemente, eis como funcionam. As declarações do programa que você acha que podem levantar exceções estão contidas dentro de um bloco de tentativa. Se uma exceção ocorre dentro do bloco de tentativa, ela é lançada. Seu código pode pegar esta exceção (usando bloco de captura) e lidar com ela de alguma forma racional. Exceções geradas pelo sistema são automaticamente lançadas pelo Java run-time system. Para abrir manualmente uma excepção, use a palavra-chave., Qualquer exceção que seja descartada de um método deve ser especificada como tal por uma cláusula de arremesso. Qualquer código que absolutamente deve ser executado após um bloco de tentativa completa é colocado em um bloco final.
artigo detalhado: fluxo de controle na tentativa de captura finalmente bloquear
necessidade de tentar-catch clause(tratamento personalizado de exceção)
considere o seguinte programa java.
Saída :
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4 at GFG.main(GFG.java:9)
Explicação : No exemplo acima, uma matriz é definida com tamanho i.e., você só pode acessar elementos do índice 0 ao 3. Mas você está tentando acessar os elementos do Índice 4 (por engano) é por isso que está lançando um exception.In neste caso, a JVM termina o programa anormalmente. O sistema de declarações.as.println (“Olá, quero executar”); nunca irá executar. Para executá-lo, devemos lidar com a exceção usando try-catch. Portanto, para continuar o fluxo normal do programa, precisamos de cláusula de tentativa de captura.,
Como usar o try-catch cláusula
Pontos a lembrar :
- Em um método, pode haver mais do que uma instrução que pode lançar a exceção, de Modo a colocar todas estas instruções dentro de seu próprio bloco try e apresentar em separado manipulador de exceção dentro do próprio bloco catch para cada um deles.
- Se uma exceção ocorrer dentro do bloco de tentativa, essa exceção é tratada pelo manipulador de exceção associado a ele. Para associar o controlador de excepção, temos de colocar o catch block atrás dele. Pode haver mais de uma excepção., Cada bloco de capturas é um manipulador de exceções que lida com a exceção do tipo indicado pelo seu argumento. O argumento, ExceptionType declara o tipo da exceção que ele pode lidar e deve ser o nome da classe que herda da classe Throwable.
- para cada bloco de tentativa pode haver zero ou mais blocos de captura, mas apenas um bloco final.o bloco final é optional.It será sempre executada se ocorreu uma excepção no bloco de tentativa ou não . Se a exceção ocorrer, então ela será executada após tentar e capturar blocos., E se a exceção não ocorrer então ela será executada após o bloco de tentativa. O bloco final em java é usado para colocar códigos importantes, como o código de limpeza, por exemplo, fechando o arquivo ou fechando a conexão.
Resumo
- Tipos de Exceções em Java
- Verificado vs Exceções não verificadas
- Jogá – Lança em Java
Referência :
Este artigo é uma contribuição de Nitsdheerendra e Gaurav Miglani. Se você gosta de GeeksforGeeks e gostaria de contribuir, Você também pode escrever um artigo usando contribuir.geeks forgeeks.,org ou enviar o seu artigo para [email protected]. veja o seu artigo que aparece na página principal dos GeeksforGeeks e ajuda outros Geeks.
Por favor escreva comentários se encontrar alguma coisa incorrecta, ou se quiser partilhar mais informações sobre o tópico discutido acima.Leitor de atenção! Não pares de aprender agora. Obtenha todos os conceitos importantes da Fundação Java e Coleções com os fundamentos do curso de Coleções Java e Java a um preço amigável para os estudantes e se torne a indústria pronta.,