Galera, desculpe a pergunta ignorante, mas vai minha dúvida:
- Como uso o throws e quando uso ele e quando uso o try/catch?
Não seria a mesma coisa eu tratar um erro no throws e no try/Catch?
Muito obrigado.
Abs
Galera, desculpe a pergunta ignorante, mas vai minha dúvida:
Muito obrigado.
Abs
O throws você usa em métodos para forçar o desenvolvedor a chamar seu método dentro de um try/catch.
No javafree você encontra uma discussão bem legal sobre o assunto.
O uso de try/catch/finaly e throws não é simples, em muitos livros é 1 capítulo… recomendo dar uma procurada até mesmo aqui nos artigos do próprio GUJ… deve ter alguma coisa lá.
De qq forma, vou dar uns exemplos bem simples só pra tentar esclarecer.
try/catch usa-se quando você quer tratar determinada funcionalidade não esperada… exemplo:
try{
numero = outroNumero / maisOutroNumero;
}catch(arithmeticexception e){
numero = 0;
System.err.println("erro... divisao invalida, contornando erro");
}
throws se usa quando você quer subir uma exceção para quem chamou seu método…
um exemplo:
[code]
public User loadUserById(Integer id) throws Exception{
if( id == null )
throws UserNotFoundException(“User with id = 0 not exists”);
}[/code]
também usa-se tudo isso combinado, principalmente quando criamos nossas próprias Exceptions… (esse é mais complicado um pouco, se quiser esquece disso por enquanto)
um exemplo, geralmente em camadas de persistência como um DAO, fazemos nossa própria exceção, tratando erros e subindo esses erros através da nossa exception criada
try{
entityManager.load(1);
}catch(Exception e){
throws new DAOException(e.getMessage()):
}
Se no Brasil se jogasse beisebol, era bem fácil de explicar