1
resposta

Bloco try sem o catch somente com o finally

Olá, eu gostaria de saber qual é a vantagem ou um exemplo onde seria bom usar um bloco try sem o catch?

1 resposta

Olá,

Pode ser útil se você quiser que um método execute um código que precise da liberação de um recurso, mas você não quer tratar a exceção neste ponto. No exemplo abaixo se houver erro no código a conexão será liberada, mas o erro deve ser tratado por quem chamar o método, deixando o código sem a responsabilidade de tratar o erro.

Ex:

void salvar(Pessoa pessoa)throw SQLException{
    Connection conn = null;
    try{
        conn = obterConexao();
        //salva no banco aqui
    }finally{
        conn.close();
    }
}

Atenciosamente, Douglas