Imprime normal pois o bloco finally sempre é executado, nesse caso temos a cláusula return, o que acaba tendo uma prioridade sobre o throw (Errei muito essa questão no BlackBelt por isso sei :lol: )
Ai vai meu chute (sem rodar o programa)
Não imprimi nada por que é lançado o RuntimeException, se assim assim nem entra no finally pois é uma RuntimeException.
Acertei?
Ai vai meu chute (sem rodar o programa)
Não imprimi nada por que é lançado o RuntimeException, se assim assim nem entra no finally pois é uma RuntimeException.
Acertei?[/quote]
pq ele nao entra no finally? lembre-se ele sempre é executando independente de ocorrer uma exceção ou nao… sempre será executado agora nada é garantido que ele vai ser concluido…
vc pode combinar:
pq ele nao entra no finally? lembre-se ele sempre é executando independente de ocorrer uma exceção ou nao… sempre será executado agora nada é garantido que ele vai ser concluido…
vc pode combinar:
try{}catch{}
try{}finally{}
[/quote]
Eu me equivoquei em relação ao RuntimeException, esse tipo de exceção não-checada podem ser tratadas tbem. Ou seja confundi com exceções do tipo Error.
Então no codigo passado é impresso Normal.
variavel static, o valor é compartilhado… finally é executado “sempre”
flw![/quote]
Está certo. A parte interessante que eu quis destacar é que… ele avalia o valor de retorno (ou seja, 0) e depois executa o bloco finally (que seta o valor para 1).