Showing posts with label Exception Handling. Show all posts
Showing posts with label Exception Handling. Show all posts

Sunday, July 4, 2010

Exception Handling Basics

A Java exception is an object that describes an exceptional (that is, error) condition that has occurred in a piece of code. When an exceptional condition arises, an object representing that exception is created and thrown in the method that caused the error. That method may choose to handle the exception itself, or pass it on. The exception is caught and processed.


Exceptions can be generated by:

1. Java run-time system (Exceptions thrown by Java relate to fundamental errors that violate the rules of the Java language or the constraints of the Java execution environment.

2. User code. (Manually generated exceptions are typically used to report some error condition to the caller of a method.)

Try, Catch, Throw, Throws, and Finally

Java exception handling is managed via five keywords: try, catch, throw, throws, and finally.


• Program statements that you want to monitor for exceptions are contained within a try block. If an exception occurs within the try block, it is thrown.

• Your code can catch this exception (using catch) and handle it in some rational manner. System-generated exceptions are automatically thrown by the Java run-time system.

• To manually throw an exception, use the keyword throw.

• Any exception that is thrown out of a method must be specified as such by a throws clause.

• Any code that absolutely must be executed before a method returns is put in a finally block.

try {
// block of code to monitor for errors
}
catch (ExceptionType1 exOb) {
// exception handler for ExceptionType1
}
catch (ExceptionType2 exOb) {
// exception handler for ExceptionType2
}
........
.... ...
finally {
    // block of code to be executed before try block ends
}

Exception Types

All exception types are subclasses of the built-in class Throwable.


Throwable has two subclasses:

1. Exception: This class is used for exceptional conditions that user programs should catch. This is also subclassed to create custom exception types. ArithmeticException is an example of such an error.

2. Error: This class defines exceptions that are not expected to be caught under normal circumstances by your program. Exceptions of type Error are used by the Java run-time system to indicate errors having to do with the run-time environment. Stack overflow is an example of such an error.