Exceções em Java: Tipos, Hierarquia e Tratamento
Exceções em Java
Explore exceções em Java — entendendo erros, tipos de exceção e a hierarquia que molda o tratamento robusto de erros.
Uma exceção é um evento inesperado que interrompe o fluxo normal de um programa, frequentemente levando a terminação anormal.
Uma exceção pode surgir de várias causas, incluindo:
- Entrada inválida do usuário
- Falhas de dispositivo
- Interrupções de rede
- Limitações físicas (ex: espaço em disco esgotado)
- Defeitos de código
- Tentativa de abrir arquivos indisponíveis
Hierarquia de Exceções em Java
Abaixo está um diagrama simplificado da hierarquia de exceções do Java.

A raiz desta hierarquia é a classe Throwable. Ela se divide em dois ramos principais: Error e Exception.
Erros (Errors)
Erros representam condições irrecuperáveis como JVM out-of-memory, estouro de pilha, incompatibilidades de biblioteca e recursão infinita. Eles são tipicamente além do controle do programador, e tentar tratá-los é desencorajado.
Exceções (Exceptions)
Exceções são condições que um programa pode capturar e recuperar. Quando uma exceção ocorre, a JVM cria um objeto de exceção que encapsula o nome, descrição e estado do programa no momento do evento.
No próximo tutorial cobriremos como tratar essas exceções. Por ora, vamos examinar as duas categorias principais dentro do ramo Exception.
Tipos de Exceção em Java
O ramo Exception divide-se em RuntimeException (unchecked) e IOException (checked). Entender a diferença é chave para tratamento eficaz de erros.
1. RuntimeException
Instâncias de RuntimeException surgem de erros de programação e não são verificadas em tempo de compilação. Exemplos comuns incluem:
- Uso impróprio de API –
IllegalArgumentException - Desreferência de ponteiro nulo –
NullPointerException - Índice de array fora dos limites –
ArrayIndexOutOfBoundsException - Divisão por zero –
ArithmeticException
Em resumo, se é runtime exception, frequentemente é sinal de erro de codificação que deve ser corrigido em vez de capturado.
2. IOException
IOException representa exceções checked que o compilador força o desenvolvedor a tratar. Cenários típicos incluem:
- Tentativa de abrir arquivo inexistente –
FileNotFoundException - Leitura além do fim de arquivo
Tratamento adequado destas exceções checked é essencial para construir aplicações resilientes.
Mergulharemos em técnicas de tratamento de exceção no próximo tutorial.
Java
- Dominando Operadores Java: Tipos, Sintaxe e Exemplos Práticos
- Comentários em Java: Tipos, Uso e Boas Práticas
- Dominando o Loop for Aprimorado em Java: Sintaxe, Exemplos e Boas Práticas
- Dominando Strings em Java: Criação, Métodos e Boas Práticas
- Dominando Tratamento de Exceções em Java: Try, Catch, Finally, Throw e Throws Explicados
- Java throw vs throws: Dominando Tratamento de Exceções com Exemplos Práticos
- Dominando Tratamento Multi-Exceção em Java
- Dominando Try-With-Resources em Java: Gerenciamento Automático de Recursos Explicado
- Anotações em Java Explicadas: Tipos, Posicionamento e Exemplos Práticos
- Asserções em Java: Guia Prático para Detectar Bugs e Garantir Confiabilidade do Código