Wiki Markup |
---|
Never use {{return}}, {{break}}, {{continue}}, or {{throw}} statements within a {{finally}} block. When program execution enters a {{try}} block that has a {{finally}} block, the {{finally}} block always executes, regardless of whether the {{try}} block (or any associated {{catch}} blocks) executes to completion. Statements that cause the {{finally}} block to terminate abruptly also cause the {{try}} block to terminate abruptly and consequently masksuppress any exception thrown from the {{try}} or {{catch}} blocks \[[JLS 2005|http://java.sun.com/docs/books/jls/third_edition/html/statements.html#14.20.2]\]. |
...
ERRO4-EX0: Control flow statements whose destination is within the finally
block are perfectly acceptable.
For instanceexample, the following code does not violate this rule, because the break
statement exits the while
loop, but not the finally
block.
...
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="bc5206e6a7b0fe01-fe973f71-4bcf409a-806e8f8e-6226fc23f398ad68046ce0d1"><ac:plain-text-body><![CDATA[ | [[Bloch 2005 | AA. Bibliography#Bloch 05]] | Puzzle 36. Indecision | ]]></ac:plain-text-body></ac:structured-macro> | |
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="fadd43b56277b7c0-4f2e7775-4b7b4d1f-8ec3acfa-d095c4f1496f960141f95297"><ac:plain-text-body><![CDATA[ | [[Chess 2007 | AA. Bibliography#Chess 07]] | 8.2, Managing Exceptions, The Vanishing Exception | ]]></ac:plain-text-body></ac:structured-macro> | |
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="a9e1e553b3f15df8-456b75b8-458c4895-b3b3b93f-6d7e53539548ea4c4a27e073"><ac:plain-text-body><![CDATA[ | [[JLS 2005 | AA. Bibliography#JLS 05]] | [§14.20.2, Execution of try-catch-finally | http://java.sun.com/docs/books/jls/third_edition/html/statements.html#14.20.2] | ]]></ac:plain-text-body></ac:structured-macro> |
...