Questão para certificação

Guj Maniacos, boa noite.

Eu estou estudando para certificação e baixei um test killer e toh bem no comecinho…

Eu enrosquei na quarta questão e gostaria de saber se alguém poderia me explicar a resposta dessa questão.

Segue a questão:

Given:
31. // some code here
32. try {
33. // some code here
34. } catch (SomeException se) {
35. // some code here
36. } finally {
37. // some code here
38. }

Under which three circumstances will the code on line 37 be executed?
(Choose three.)
A. The instance gets garbage collected.
B. The code on line 33 throws an exception.
C. The code on line 35 throws an exception.
D. The code on line 31 throws an exception.
E. The code on line 33 executes successfully.

Resposta: BCE

Juro que eu não consegui entender as respostas.

Vejam se eu entendi certo:

Se eu colocar qualquer coisa na linha 33 e 35 vai me lançar uma exceção. E se eu colocar algum código só na linha 33 vai funcionar?! É isso?
E se eu colocar alguma coisa na linha 37 vai executar? Eu achei meio confusa essa questão.

Bom, se alguém puder me dar uma luz…, eu agradeço.

Fala rapaz.
Vou ver se consigo te ajudar.
A pergunta, traduzindo, fala em quais circunstancias, a linha 37 vai ser executada.

A linha 37, linha do finally, vai ser executada tanto no bloco try, tanto no bloco catch e tanto no bloco try lançando exceção. Finally é sempre executada num bloco try, lançando exceção ou não.

As opções erradas:
A letra A meio que seria uma opção se msentido(na minha opinião).
A letra D seria errada, porque um bloco finally não é executado sem cair num bloco try.

Me corrijam se eu estiver errado.
Espero ter ajudado, falo!
Falow!

Hum…, agora sim…

Vejo que pra tirar a certificação vou precisar tb de muita atenção antes de responder as questões…

Muito obrigado pela resposta!

Leia o livro de certificação da Kathy Sierra , lá conta muitos detalhes, inclusive este.

Falo, boa sorte!