Palavra-chave throw em Java

A palavra-chave throw em Java é usada para lançar explicitamente uma exceção. Diferente da palavra-chave throws, que é usada na declaração de métodos para indicar que um método pode lançar uma ou mais exceções, throw é usada dentro do corpo de um método para lançar uma exceção.

Uso da Palavra-chave throw

1.Lançar uma Exceção Específica: Você pode usar throw para lançar uma exceção específica que você deseja tratar em outro lugar do seu código. Isso é útil para indicar que ocorreu um erro ou uma condição especial que precisa ser tratada.

public class Exemplo {
    public void verificarIdade(int idade) {
        if (idade < 0) {
            throw new IllegalArgumentException("Idade não pode ser negativa");
        }
        // Código adicional
    }
}

No exemplo acima, se a idade fornecida for menor que 0, uma IllegalArgumentException será lançada com uma mensagem explicativa.

2.Lançar Exceções Personalizadas: Você pode criar suas próprias exceções personalizadas e lançá-las usando a palavra-chave throw. Isso permite um controle mais fino sobre os tipos de erros que sua aplicação pode enfrentar.

public class MinhaExcecao extends Exception {
    public MinhaExcecao(String mensagem) {
        super(mensagem);
    }
}

public class Exemplo {
    public void validar(String valor) throws MinhaExcecao {
        if (valor == null || valor.isEmpty()) {
            throw new MinhaExcecao("Valor não pode ser nulo ou vazio");
        }
        // Código adicional
    }
}

Neste exemplo, a MinhaExcecao é lançada se o valor for nulo ou vazio.

3.Tratamento de Exceções Lançadas: Quando uma exceção é lançada com throw, você deve garantir que ela seja tratada em algum lugar do seu código. Isso geralmente é feito usando blocos try-catch.

public class Teste {
    public static void main(String[] args) {
        Exemplo exemplo = new Exemplo();
        try {
            exemplo.verificarIdade(-1);
        } catch (IllegalArgumentException e) {
            System.out.println("Erro: " + e.getMessage());
        }
    }
}

Neste exemplo, o bloco try-catch captura a exceção lançada e imprime uma mensagem de erro.

Exemplo Completo

Aqui está um exemplo completo demonstrando o uso de throw com exceções personalizadas:

// Definição da exceção personalizada
class MinhaExcecao extends Exception {
    public MinhaExcecao(String mensagem) {
        super(mensagem);
    }
}

// Classe que lança a exceção
public class Validador {
    public void validar(String valor) throws MinhaExcecao {
        if (valor == null || valor.isEmpty()) {
            throw new MinhaExcecao("Valor não pode ser nulo ou vazio");
        }
        System.out.println("Valor válido: " + valor);
    }
}

// Classe principal para testar a exceção
public class Teste {
    public static void main(String[] args) {
        Validador validador = new Validador();
        try {
            validador.validar(""); // Isso lançará a MinhaExcecao
        } catch (MinhaExcecao e) {
            System.out.println("Erro: " + e.getMessage());
        }
    }
}




Resumo

  • throw é usado para lançar uma exceção explicitamente.
  • Pode ser usado para lançar exceções padrão ou personalizadas.
  • O método que lança uma exceção deve ser preparado para tratá-la ou propagá-la usando throws.
  • É comum usar blocos try-catch para capturar e tratar exceções lançadas.

O uso de throw permite que você controle e gerencie erros de forma mais eficaz em sua aplicação Java, garantindo que condições excepcionais sejam tratadas adequadamente.