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.
Posts recentes
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.