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: )
LPJava
o metodo finally sempre é executado… mais quando vc poe return dentro de um metodo do tipo void o metodo para de executar…
Luca
Olá
Certo!
A turma está esperta com o funcionamento do finally.
[]s
Luca
arochafademac
Alguem pode me explicar?
Nao entendi nada…rs
Ironlynx
O que vc não entendeu?A explicação do Thiago e do LP já dizem tudo!
furutani
Olá
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?
LPJava
furutani:
Olá
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?
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:
variavel static, o valor é compartilhado.. finally é executado "sempre"
flw!
furutani
Olá
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{}
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.
LPJava
exato… mais Error é uma exceção tb nao-checada ela so nao extends a class RuntimeException.
Sami_Koivu
LPJava:
imprime 0.
e depois imprime 1.
variavel static, o valor é compartilhado… finally é executado “sempre”
flw!
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).