Transcript EXCEPTIONS

EXCEPTIONS
Def: An exception is a run-time error.
Examples include: attempting to divide by
zero, or manipulate invalid data.
Handling Exceptions within Applications
The try-catch statement
This includes a block of statements that may
“throw an exception” – the “try” block.
That is, where an exception may occur.
This also includes 1 or more “catch” clauses.
Each catch clause is a handler for a different
type exception.
If no exceptions are thrown, what happens?
The catch clauses are skipped.
 When an exception occurs, the catch block handling
the corresponding exception type is executed, and
then control is transferred to the statement
immediately following the try-catch statement.
 The try-catch statement may be augmented by a
“finally” block.
 The finally block is executed whether the try
statements execute successfully or a catch clause is
executed.
 See examples bottom p. 536 (Lew&Loftus)
 If an exception is not caught and handled
where it occurs, control is returned to each
preceding method that was called.
 Refer to pp.539-541. What lines of code are
never executed because the exception was
not caught?
 We can write our own exception classes by
having them extend the class Exception, or
one of its descendants.
 Hierarchy of Java exception classes – p.542
The “throws” clause in a method header.
 Exceptions are classified as either “checked”
or “unchecked”.
 Checked exceptions must be either caught or
must be listed in the throws clause of every
method that may either catch it or propagate
it.
 Example: IOExceptions (see IOSample.java)
 An unchecked exception requirres no throws
clause. These are only of RuntimeException
or its descendants.
I/O Concepts
 Def: Stream – an ordered sequence of bytes
that flows from a source to a destination.
 A stream is either an input stream (for reading
information) or an output stream (for writing
information).
 A program can handle multiple streams of
both types but a particular store of data, or
file, can serve as only an input stream or an
output stream, but not both at the same time.
The class System
 The class System contains three public static object




variables for I/O:
System.in, System.out, System.err.
These objects represent the standard IO devices:
keyboard for input and monitor for output.
Many other classes exist in the Java standard class
library for defining I/O streams for dealing with
streams of data for files and for data that is not
treated as raw bytes but as characters.
Most I/O class operations require the throws
IOException in the method headers.