Exceções

As exceções em Java são eventos que interrompem o fluxo normal de execução do programa devido a condições inesperadas ou erros durante a execução. Elas oferecem uma maneira estruturada de lidar com erros, permitindo que você crie código robusto e seguro. Neste artigo, vamos explorar as exceções em Java, entender como elas funcionam e examinar exemplos práticos para ilustrar esses conceitos.

O Que São Exceções em Java?

Uma exceção em Java é um objeto que representa uma situação excepcional durante a execução do programa. Elas podem ocorrer por diversas razões, como divisão por zero, acesso a um índice inválido de um array ou falha ao abrir um arquivo. Quando uma exceção é lançada, o programa procura por um bloco de código chamado tratamento de exceção que pode lidar com essa exceção. Se nenhum tratamento for encontrado, o programa será encerrado abruptamente e uma mensagem de erro será exibida.

Tipos de Exceções em Java

Em Java, as exceções são divididas em duas categorias principais:

  1. Exceções Verificadas (Checked Exceptions): São exceções que o compilador obriga você a tratar, seja através de uma cláusula try-catch ou declarando que o método lança a exceção usando a palavra-chave throws. Exemplos incluem IOException e SQLException.

  2. Exceções Não Verificadas (Unchecked Exceptions): São exceções que o compilador não exige que você trate. Geralmente são subclasses de RuntimeException e suas subclasses. Exemplos incluem NullPointerException e ArrayIndexOutOfBoundsException.

Sintaxe de Tratamento de Exceções

Bloco Try-Catch

try {
    // Código que pode lançar uma exceção
} catch (TipoDeExcecao e) {
    // Código para lidar com a exceção
} finally {
    // Código a ser executado sempre, independentemente de ocorrer uma exceção ou não
}

Lançando Exceções

public void metodo() throws TipoDeExcecao {
    // Código
    if (condicaoDeErro) {
        throw new TipoDeExcecao("Mensagem de Erro");
    }
    // Mais código
}

Exemplo Prático de Tratamento de Exceções

Vamos considerar um exemplo onde tentamos dividir dois números. Se o divisor for zero, uma exceção será lançada.

public class ExcecoesEmJava {
    public static void main(String[] args) {
        int numerador = 10;
        int divisor = 0;

        try {
            int resultado = numerador / divisor;
            System.out.println("Resultado da divisão: " + resultado);
        } catch (ArithmeticException e) {
            System.out.println("Erro: Divisão por zero não permitida.");
        }
    }
}

Neste exemplo, o programa tenta dividir numerador por divisor. Como divisor é zero, uma exceção do tipo ArithmeticException é lançada. O bloco catch captura essa exceção e imprime uma mensagem de erro.

O tratamento de exceções em Java é uma prática essencial para criar programas robustos e confiáveis. Ao compreender as diferentes tipos de exceções, como lançá-las e como usar os blocos try, catch e finally, você pode desenvolver código que lida eficazmente com situações inesperadas.