A good answer might be:

In which outputs did the try{} block execute without an exception? 1
In which outputs did the try{} block throw an ArithmeticException? 2
In which outputs did the try{} block throw an unhandled exception
(one with no catch{} block)?
3
In which outputs did the finally{} block execute? 1, 2, 3

Omitting the catch{} Blocks

If there is a finally{} block, then the catch{} blocks can be omitted (if you want):

try
{
  // statements, some of which might
  // throw an exception
}


finally
{
  // statements which will execute no matter
  // how the try block was exited.
}

// Statements following the structure

This might be done if you don't want to handle exceptions in this method, but you have a few statements that must execute no matter what before control is returned to the caller. This often happens if a method has a lock on some resource that it should give up before exiting. For example, if the method opens a file, it should (perhaps) close it before exiting.

QUESTION 19:

Why can't the "Statements following the structure" be used to close a file that the method has opened?