Classification of throwable classes
There are hundreds of different kinds of errors or exceptions that could hap-
pen at runtime, ranging from division by 0 to an input-output error to memory
overflow. With so many different possibilities of exceptions, some structure must
be put on them to keep them manageable. Java does this by providing a subclass
structure for them. Figure 10.3 shows a few of the subclasses, with indenting to
denote subclassing. Thus, class Throwable has two direct subclasses: Error and
Exception . If an instance of class Error is thrown, something serious happened
and the program terminates. If an instance of class Exception is thrown, then
either the program catches it and processes it in some way or the program ter-
minates with an error message.
Classes Exception, RuntimeException, and ArithmeticException
To the left in Fig. 10.4 is an object of class Exception . As you can see, the
only components defined in class Exception are two constructors: one with no
parameters and one with one parameter, which, through a super-constructor call,
will be assigned to inherited field detailMessage .
On the right side of Fig. 10.4 is an object of class RuntimeException , which
extends class Exception . It also contains only two components, both construc-
tors. This illustrates the general pattern. There is no need to define anything in a
throwable class besides two constructors. The different subclasses are defined
only to give structure and classification to the large list of exceptions that can
occur during execution of a program.
So that you can see what a throwable class looks like, Fig. 10.5 contains the
definition of class ArithmeticException . It has two simple constructors; that is
all. If you want to write your own throwable class, use this one as a model.
See lesson page
10-2 to obtain a
template for a
subclass of class
Objects of class Exception and RuntimeException