Neste tutorial, aprenderemos sobre exceções em Java. Cobriremos erros, exceções e diferentes tipos de exceções em Java.
Uma exceção é um evento inesperado que ocorre durante a execução do programa. Afeta o fluxo das instruções do programa, o que pode fazer com que o programa seja encerrado de forma anormal.
Uma exceção pode ocorrer por vários motivos. Alguns deles são:
- Entrada de usuário inválida
- Falha do dispositivo
- Perda de conexão de rede
- Limitações físicas (sem memória em disco)
- Erros de código
- Abrindo um arquivo indisponível
Hierarquia de exceção Java
Aqui está um diagrama simplificado da hierarquia de exceção em Java.
Como você pode ver na imagem acima, a Throwable
classe é a classe raiz na hierarquia.
Observe que a hierarquia se divide em dois ramos: Erro e Exceção.
Erros
Os erros representam condições irrecuperáveis, como máquina virtual Java (JVM) sem memória, vazamentos de memória, erros de estouro de pilha, incompatibilidade de biblioteca, recursão infinita, etc.
Os erros geralmente estão além do controle do programador e não devemos tentar tratá-los.
Exceções
As exceções podem ser capturadas e tratadas pelo programa.
Quando ocorre uma exceção em um método, ele cria um objeto. Este objeto é chamado de objeto de exceção.
Ele contém informações sobre a exceção, como o nome e a descrição da exceção e o estado do programa quando a exceção ocorreu.
Aprenderemos como lidar com essas exceções no próximo tutorial. Neste tutorial, vamos nos concentrar em diferentes tipos de exceções em Java.
Tipos de exceção Java
A hierarquia de exceção também possui duas ramificações: RuntimeException
e IOException
.
1. RuntimeException
Uma exceção de tempo de execução ocorre devido a um erro de programação. Eles também são conhecidos como exceções não verificadas .
Essas exceções não são verificadas em tempo de compilação, mas em tempo de execução. Algumas das exceções de tempo de execução comuns são:
- Uso impróprio de uma API -
IllegalArgumentException
- Acesso de ponteiro nulo (faltando a inicialização de uma variável) -
NullPointerException
- Acesso à matriz fora dos limites -
ArrayIndexOutOfBoundsException
- Dividindo um número por 0 -
ArithmeticException
Você pode pensar sobre isso desta forma. “Se for uma exceção de tempo de execução, a culpa é sua”.
O NullPointerException
não teria ocorrido se você tivesse verificado se a variável foi inicializada ou não antes de usá-la.
Um ArrayIndexOutOfBoundsException
não teria ocorrido se você testou o índice de ordem contra os limites da matriz.
2. IOException
Um IOException
também é conhecido como exceção verificada . Eles são verificados pelo compilador no momento da compilação e o programador é solicitado a lidar com essas exceções.
Alguns dos exemplos de exceções verificadas são:
- Tentar abrir um arquivo que não existe resulta em
FileNotFoundException
- Tentando ler além do final de um arquivo
Agora que sabemos sobre exceções, aprenderemos sobre como lidar com exceções no próximo tutorial.