Diferença entre throws e bloco try

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