Antes que alguem diga eu ja procurei em um monte de lugares e todos dizem “throws sinaliza uma excessão”, mas é só isso que dizem.Me deem um exemplo de funcionamento, um ssitema que não funcionaria sem o throws.Eu ja usai o throws aqui pra sinalizar a excessão e o programa parou do mesmo jeito, não entendi qual a utilidade desse comando.
Você quer saber o que é throw ou throwssss? O throwsssss só serve pra dizer que um método lança uma exception. Por exemplo,
public void metodoQueFazAlgumaCoisa() throws MinhaException{
if (!isUsuarioLogado()) {
throw new MinhaException("Usuário não está logado.");
}
}
// ...
// Aqui vai dar um erro de compilação porque esse método "ó, tome cuidado que pode acontecer alguma coisa de ruim"
// Então temos que colocar um try catch onde, no catch, provavelmente apresentaremos a mensagem da Exception.
metodoQueFazAlgumaCoisa();
// ...
// Aqui vai provavelmente compilar.
try {
metodoQueFazAlgumaCoisa();
} catch (MinhaException e) {
apresentarMensagemDeErro(e.getMessage());
}
O throws apenas informa que o método que possui o throws pode lançar as exceções contidas na cláusula. Via de regra, usa-se esta cláusula para exceções do tipo checked, indicando que a exceção será tratada mais a frente.
Cara o throws pode ser substituido perfeitamente por um try/catch…
Meth,
Na verdade isso depende bastante. Se a exceção deve ser tratada, é melhor colocar um try catch ali. Por exemplo, alguma operação de banco geralmente pode envolver dar um rollback (as apis mais novas já fazem isso eu acho).
E outras devem ser ‘jogadas pra cima’ pra chegar em algum outro lugar, tipo na view, que ela será apresentada de forma decente.