Checked vs. Unchecked Exceptions
Java distinguishes between checked exceptions and unchecked exceptions. This distinction is important, because the Java compiler enforces a catch-or-declare requirement for checked exceptions. An exception’s type determines whether it’s checked or unchecked. All exception types that are direct or indirect subclasses of class RuntimeException (package
java.lang) are unchecked exceptions. These are typically caused by defects in your program’s code. Examples of unchecked exceptions include
ArrayIndexOutOfBoundsExceptions (discussed in Appendix E) and
ArithmeticExceptions. All classes that inherit from class
Exception but not class
RuntimeException are considered to be checked exceptions. Such exceptions are typically ...