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.