Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Try catch ou throws?

Eu entendo o funcionamento dos dois comandos mas fico inseguro de quando usar um ou outro. Quando que eu devo tratar o código de checked exceptions direto no método com try catch e quando eu devo usar o throws? Eu dei uma pesquisada e achei essa resposta: "If it makes sense to deal with it here...then do it". Então no caso da classe Database que criamos no exercício faz mais sentido tratar as exceções nela mesma, ou não faz sentido algum trata-las?

Obrigado.

3 respostas
solução!

Oi Luan, acho melhor pensar assim: se der exception, vc sabe o que fazer para se recuperar? Por exemplo, deu exception quando vc foi fazer uma query no banco, o que fazer? Se vc não sabe(realmente não tem), solta a exception para cima.

Legal Alberto, então o mesmo vale para o caso dos arquivos né?! Caso eu tente abrir um arquivo que não exista não há nada que eu possa fazer para me recuperar a não ser mostrar uma mensagem dizendo que o arquivo não existe.

Eu tinha feito assim minha classe assim:

public static Connection getConnection() {
        try {
            Class.forName("com.mysql.jdbc.Driver");
            Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/alura_jdbc", "root", "ubuntu");

            return connection;
        } catch (SQLException e) {
            System.out.println("Não foi possível conectar ao banco de dados");
            return null;
        } catch (ClassNotFoundException e) {
            System.out.println("O driver especificado não foi encontrado");
            return null;
        }
    }

Fiz assim apenas para mostrar a mensagem no método main caso alguma coisa acontecesse. Eu devo tirar esses try/catch então né?! e caso alguma coisa ocorra( a string de conexão estar errada por exemplo), eu vejo o stackTrace e investigo a partir dali onde pode estar o problema. É isso?

Sim :).