1
resposta

Para que usar throws?

Poderia me esclarecer um pouco mais sobre o throws que colocamos na assinatura do metodo? Pelo que entendi deveria ser uma das soluções para a tratativa das exceptions no lugar do try catch mas fiz o teste sem o try catch e somente o throws não resolve a exception. Poderiam me esclarecer um pouco mais sobre o throws? e se posso so usar o try catch sem o throws, ja que ele por si so não resolve? Qual a importancia dele?

1 resposta

Oi Tatiana, tudo bem?

Em Java, uma exceção pode ser gerada:

  • pelo Java Runtime Environment;
  • por sua aplicação. Nesse caso, o programa deve usar a instrução "throw" .

Já a instrução throws (com S no final) é usada em um método para informar ao código de chamada (quem chamou seu método) que esse método pode gerar uma exceção (dentro dele tem algum código que gera exception) e que o próprio método não trata (não tem try/catch).

Por exemplo:

int myMethod(int myNumber) throws NegativeNumberException {
        if (myNumber<0) {
                throw new NegativeNumberException(myNumber);
        }
        return myNumber;
    }

No exemplo de código acima eu estou colocando na assinatura do método a instrução throws NegativeNumberException, isso significa que eu estou avisando quem chamar o meu método "myMethod" que pode ser gerado uma Exception do tipo NegativeNumberException, pois meu método não está tratando com try/catch essa exception. Eu poderia ter colocado try/catch no meu método? Poderia, mas nesse caso eu achei melhor deixar a exception por conta de quem chamar meu método.