CIS 35A: Introduction to Java Programming

Home | Green Sheet | Lectures | Assignments | FAQ | Grades

Exceptions

Exceptions handling
Exceptions
Finally clause

How to use the finally clause

  • The code in the finally block is executed whether or not an exception is thrown.
  • If the try statement is coded in a method that returns a value to its calling method, the code in the finally block is executed even if the code in the try block or a catch block issues a return statement.
  • Unlike the code in a finally block, code that follows a try statement isn't executed if an exception is thrown but not handled by one of the catch clauses.

A try statement that uses a finally clause

try
{
    // code that throws FileNotFoundException
    return productFile;
}
catch (FileNotFoundException e)
{
    // code that handles FileNotFoundException
    return null;
}
finally
{
    // code that's executed whether or not
    // FileNotFoundException is thrown
}

A try statement that doesn't use a finally clause

try
{
    // code that throws FileNotFoundException
}
catch (FileNotFoundException e)
{
    // code that handles FileNotFoundException
}
// code that's executed whether or not
// FileNotFoundException is thrown

A try statement that uses a finally clause for an unhandled exception

try
{
    // code that throws FileNotFoundException
    // or IOException
}
catch (FileNotFoundException e)
{
    // code that handles FileNotFoundException
}
finally
{
    // code that's executed whether or not
    // FileNotFoundException or IOException is thrown
}
// code that's executed whether or not
// FileNotFoundException is thrown
// but not if IOException is thrown
Previous | Try statement | Finally clause | Throws clause | Throw statement | Throwable class | Next