(1) A call to a method that throws an exception must always be enclosed in a try/catch block (2) variables created within a try or catch block will be local to that block (3) A try statement must always be matched with a catch statement (4) A finally block may not contain try/catch statements
(4) A finally block may not contain try/catch statements
I chose option 2 only. Answer says 4 too.
Source: "Giri Mandarika" (Link available in JavaRanch)
I think that is wrong - I use try/catch in finally blocks all the time, especially when cleaning up network connections, closing OutputStreams and the like (many cleanup methods can throw IOExceptions).
The matter of confusion was "may not contain try catch block". One can interpret it like, finally block does not necessarily require try catch block. I mean it is not must to stuff try catch block in the finally clause.
"finally block can include try catch but may not include also" : "My interpretation"