O try é usado para manipular métodos (por exemplo) que lançam exceções como no código abaixo
class A {
cpublic void excecao() throws Exception{
throw new Excption("Excecao");
}
}
class B {
public static void main(Stirng[] a) {
A a = new A();
try{
a.excecao();
} catch (Exception e) {
e.printStackTrace();
}
}
}
ou seja, pode-se interpretar assim
tente executar o método xxxx() e pegue qualquer exceção e faça algo, que no meu caso eu mandei imprimir a pilha de erros
Com o finally não é muito diferente, ou seja, utiliza-se do mesmo modo, porém tudo que estiver entre as chaves, será executa HAVENDO ou NÃO exceção, tomamos como exemplo o código anterior temos:
class A {
cpublic void excecao() throws Exception{
throw new Excption("Excecao");
}
}
class B {
public static void main(Stirng[] a) {
A a = new A();
try{
a.excecao();
} catch (Exception e) {
System.out.println("Ocorreu a excecao");
e.printStackTrace();
} finally {
System.out.println("Executando o finally");
}
try{
System.out.println("Metodo que nao solta excecao");
} catch (Exception e) {
System.out.println("Ocorreu a excecao");
e.printStackTrace();
} finally {
System.out.println("Executando o finally");
}
}
}
Você irá perceber que em ambos os casos será impresso “Executando o finally”, o finally é muito utilizado em transações com o banco, ou seja, ocorreu um erro durante uma atualização nos dados, dentro do finally é feito um rollback da transação, e/ou é utilizado para fechar a conexão haja o que houver!