Every exception chooses one of the above handler actions by default when
no handler is found, or they all use
#pass. This is invoked by
#defaultAction to the class.
One example of a default action is presented above as part of the example
#error: usage; that default action prints a message, backtrace,
and unwinds the stack all the way.
The easiest way to choose a default action for your own exception classes is to subclass from an exception class that already chose the right one, as explained in the next section. For example, some exceptions, such as warnings, resume by default, and thus should be treated as if they will almost always resume.
Selecting by superclass is by no means a requirement. Specializing your
Error subclass to be resumable, or even to resume by default,
is perfectly acceptable when it makes sense for your design.