exp
refers to an object of class Exception
(or a subclass).
Here is an outline of the try/catch structure:
try { // statements, some of which might throw an exception } catch ( SomeExceptionType ex ) // may be omitted if there is a finally block { // statements to handle // SomeExceptionType exceptions } // additional catch blocks (optional) // finally block (optional, unless there are no catch blocks)
When a catch{}
block receives control it
has a reference to an object of class Exception
(or a subclass of Exception
).
The class of the object depends on what exception was thrown.
When an exception event occurs while a program is running,
the Java run time system takes over,
creates an Exception
object to represent the event.
Information about the event is put in the object.
If the exception arose inside a try{}
block,
the Java run time system
sends the Exception
object to the
appropriate catch{}
block
(if there is one).
Exception
objects are Java objects.
They
have member data and member methods,
including:
Print a stack trace ― a list that shows the sequence of method calls up to this exception.
Return a string that may describe what went wrong.
A catch{}
block can use these methods
to write an informative error message to the monitor.
Say that an array has been declared by:
int[] value = new int[10];
Is it legal to refer to value[10]
?