Default Exception Handler
We examined the
start() method to the extent of saying that
“the start() method indirectly calls the
run() method,” but let’s examine
exactly what happens. The start() method does
start another thread of control, but the run()
method is not the “main” routine for this new thread.
There are other bookkeeping details that must be taken care of first.
The thread must be set up in the Java virtual machine before the
run()
method can execute. This process is
shown in Figure 1.1.

Figure A-1. Flowchart of the main thread
All uncaught exception conditions are handled by code outside of the
run() method before the thread terminates. It is
this exception handling that we will examine here.
Why is this exception handler interesting to us? The default exception handler is a Java method; it can be overridden. This means that it is possible for an application to write a new default exception handler. This method looks like this:
- void uncaughtException(Thread t, Throwable o)
The default exception handler method, which is called as a final handler to take care of any exceptions not caught by the thread in the
run()method. This is a method of the ThreadGroup class.
The default exception handler is a method of the ThreadGroup class.
It is called only when an exception is thrown from the
run() method. The thread is technically
completed when the run() method returns, even ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access