usando um bloco try catch finally em um método, lançando ou não uma excecao o resto do metodo é executado ?
try{
//nao lança excecao e executa com sucesso
}
catch(Exception e)
{
// nao executa
}
finally{
//executa com sucesso
}
System.out.println("O resto do método executa");
O código acima está ok.
try{
//lanca exececao e nao executa com sucesso
}
catch(Exception e)
{
// executa
}
finally{
//executa com sucesso
}
System.out.println("O RESTO DO MÉTODO EXECUTARÁ ????");
Nesse segundo caso existe alguma situação que ele nao executará. Fiz uns exercício os quais nao tenho mais, e achava que não executava … mas estava certo disso e errei uma questão em um simulado, e fui testar o codígo e realmente lançando ou não excessão o resto do metodo prosseguia e executava com sucesso, confirmam ?
Sim, executa normalmente. Quando é lançada a excecao no bloco try, ele nao executa da linha que lancou acessou até o final do bloco try. Ai ele cai nos blocos catch e depois executa o finally. Para o código escrito fora do bloco nao importa se foi lançada ou nao…
francislon
Essa é a vantagem de se usar tratamento de exceção…seu programa não é abortado se for capturada alguma exceção…
ViniGodoy
No caso de exceção, sim, sempre executará.
Mas vale lembrar que, caso haja um return dentro do try, o bloco ressaltado não executará, embora o que está dentro do finally execute.