A linguagem Java permite que informemos que um métodos, durante sua declaração, podem lançar exceções
durante sua execução. Para isso, precisamos utilizar a palavra reservada throws como na sintaxe abaixo
Sintaxe
modificador_acesso tipo_retorno nome_metodo(parametros) throws nome_excecao1, nome_excecao2, nome_excecaoN {
//corpo
}
Exemplo 6
public void meuMetodo() throws ArithmeticException{
throw new ArithmeticException("Mensagem de erro");
}
Saída
-
Um dos benefícios da utilização do throws é a verificação, em tempo de compilação, se o método está declarado dentro
do corpo de um bloco try/catch ou não. Caso não esteja, um erro de compilação será exibido.
Exemplo 7 : Sem try-catch
//Main.java
public class Main
{
public static void metodo() throws ArithmeticException {
throw new ArithmeticException("Mensagem erro");
}
public static void main(String[] args) {
metodo(); //compilador verifica se está dentro de try/catch
}
}
Saída
Main.java:8: error: unreported exception ArithmeticException; must be caught or declared to be thrown
metodo();
^
1 error
Exemplo 8: Com try-catch
//Main.java
public class Main
{
public static void metodo() throws ArithmeticException{
throw new ArithmeticException("Mensagem erro");
}
public static void main(String[] args) {
try{
metodo();
}
catch( ArithmeticException e ){
System.out.println(e.getMessage());
}
}
}
Saída
Mensagem erro