Olá pessoal do GUJ!
Gostaria que alguem me ajudasse a entender a diferença entre o throws e o bloco try/catch ???
quando vc faz…
try{ //ou seja tente
//ele tenta realizar o código que esta dentro do bloco
//quando há um erro, o bloco lança uma exceção
//para parar a exceção, vc pode usar o CATCH, que segura a exceção
} catch (Exception ex) { //ou seja, segura qualquer exceção que seja do tipo Exception ou descendente.
//aki vc pode agir, para contornar o problema da exceção
}
é mais ou menos assim… vc quando tem um problema, que vc não pode tratar, em vez de vc tentar solucionar, vc simplismente passa o problema pra frente, ai quem tentou usar o seu método, que deve tratar do problema…
imagine q vc esta fazendo uma classe de inserir dados num banco, neste ponto, vc não tem q ficar xecando conexão de banco etc etc… para tal, vc simplismente pede a conexão, e insere os dados no banco caso haja erros, vc lança pra fora a exceção, através do throws
imagine que existe um método de se conectar um banco de dados, e vc invoca ele, c der erro, vc simplismente joga a exceção pra cima
[code]public int insertDados(Values[] values) throws ConnectionException {
Connection conexao = getConnection(); //esse método pode gerar uma connectionException
//mais se preucupar com esse problema não te interesse, e vc lança a exceção, pra cima,
//e quem se interessar em cuidar desse erro que o trate…
if (testaValues(values))
throw new IllegalArgumentException(“Os dados não estão conformes”);
//… depois vc segue inserindo os dados, os erros de conexão ou formato de dados vc simplismente joga através do throw
}[/code]
[code]public class FimDoArquivoException extends Exception {
…
}
public class FazQualquerCoisa {
public Coisa leAlgumaCoisaDoArquivo() throws FimDoArquivoException {
if (temMaisAlgumaCoisaNoArquivo) {
return proximaCoisaQueEstaNoArquivo;
} else {
throw new FimDoArquivoException();
}
}
public void fazOutraCoisa() {
...
Coisa c;
try {
c = leAlgumaCoisaDoArquivo();
c.fazerAlgoLegal();
c.fazerAlgoDivertido();
...
} catch (FimDoArquivoException e) {
mostrarMensagem("Desculpe, acabaram as coisas do arquivo.");
}
}
}[/code]
http://java.sun.com/docs/books/tutorial/essential/exceptions/
http://chaoticjava.com/posts/lets-try-throws-catch-finally/
Também deve ter alguma coisa aqui no Guj
[]'s
Boa resposta victorwss, rápido e simples. Programadormaia tem alguns posts em blogs ensinando as melhores práticas para o tratamento de exceções mas é bom começar com o java how to program.
[]'s