Java Quick Reference
  Language Fundamentals
  Operators and Assignments
  Flow Control and Exceptions
  Declarations and Access Control
  Garbage Collection
  Overloading and Overriding
  Threads
  The java.lang Package
  The java.util Package
  The java.awt Package
  The java.io Package
  References
  Miscellaneous Notes
  Tips & Traps
  Mock Exams

Flow Control and Exception Handling - try-catch-finally

Syntax (JPL pg155)

try {
    statements;
} catch (exceptionType1 identifier1) {      // one or multiple
    statements;                 
} catch (exceptionType2 identifier2) {
    statements;
}    
...
} finally {                                 // one or none
    statements;
}
  • must include either one catch clause or a finally clause
  • can be multiple catch clauses but only one finally clause
  • the try statements are executed until an exception is thrown or it completes successfully
  • a compile-error occurs if the code included in the try statement will never throw one of the caught checked exceptions (runtime exceptions never need to be caught)
  • if an exception is thrown, each catch clause is inspected in turn for a type to which the exception can be assigned; be sure to order them from most specific to least specific
  • when a match is found, the exception object is assigned to the identifier and the catch statements are executed
  • if no matching catch clause is found, the exception percolates up to any outer try block that may handle it
  • a catch clause may throw another exception
  • if a finally clause is included, it's statements are executed after all other try-catch processing is complete
  • the finally clause executes wether or not an exception is thrown or a break or continue are encountered
Note
  • If a catch clause invokes System.exit() the finally clause WILL NOT execute.

Example Code


Statements if switch for while do
Labels Exceptions Handling Exceptions try-catch-finally