Chapter 7. Exception Handling
An exception is an anomalous condition that alters or interrupts the flow of execution. Java provides built-in exception handling to deal with such conditions. Exception handling should not be part of the normal program flow.
The Exception Hierarchy
As shown in Figure 7-1, all exceptions and errors inherit from the class Throwable, which inherits from the class Object.
Figure 7-1. Snapshot of the exception hierarchy
Checked/Unchecked Exceptions and Errors
Exceptions and errors fall into three categories: checked exceptions, unchecked exceptions, and errors.
Checked Exceptions
-
Checked exceptions are checked by the compiler at compile time.
-
Methods that throw a checked exception must indicate so in the method declaration using the
throwsclause. This must continue all the way up the calling stack until the exception is handled. -
All checked exceptions must be explicitly caught with a
catchblock. -
Checked exceptions include exceptions of the type
Exception, and all classes that are subtypes ofException, except forRuntimeExceptionand the subtypes ofRuntimeException.
The following is an example of a method that throws a checked exception:
// Method declaration that throws// an IOExceptionvoidreadFile(Stringfilename)throwsIOException{...}
Unchecked Exceptions
-
The compiler does not check unchecked exceptions at compile time. ...