0% found this document useful (0 votes)
14 views

7 Lecture Seven Exception Handling (3)

Uploaded by

Isaac King
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views

7 Lecture Seven Exception Handling (3)

Uploaded by

Isaac King
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 27

Chapter-7

EXCEPTION HANDLING
Exception in Java
• An exception (or exceptional event) is a problem that
arises during the execution of a program.
• When an Exception occurs the normal flow of the
program is disrupted and the program/Application
terminates abnormally, which is not recommended,
therefore, these exceptions are to be handled.
Why Exception Occurs?
• An exception can occur for many different reasons.
• Following are some scenarios where an exception
occurs:
• A user has entered an invalid data.
• A file that needs to be opened cannot be found.
• A network connection has been lost in the middle of
communications or the JVM has run out of memory.
• Some of these exceptions are caused by user error,
others by programmer error, and others by physical
resources that have failed in some manner.
Java Exception Categories
• There are the following categories of exceptions.
• Understanding these categories helps to know how
exception handling works in Java.
• Checked exceptions
• Unchecked exceptions
• Errors
Java Exception Categories…
• Java Checked Exceptions
• A checked exception is an exception that is checked (notified)
by the compiler at compilation-time, these are also called as
compile-time exceptions. These exceptions cannot simply be
ignored, the programmer should take care of (handle) these
exceptions.
• Example:
• If you use FileReader class in your program to read data from
a file, if the file specified in its constructor doesn't exist, then
a FileNotFoundException occurs, and the compiler prompts
the programmer to handle the exception
• [Look to the code in the next slide]
Java Exception Categories…
• Example…
Note −since methods read() and
close() of FileReader class throws
IOException, you can observe that
(in the output below) the compiler
notifies to handle IOException, along
with FileNotFoundException.

• If you try to compile the above program, you will get the
following exceptions (Output).
C:\>javac FilenotFound_Demo.java
FilenotFound_Demo.java:8: error: unreported exception FileNotFoundException; must be caught or
declared to be thrown
FileReader fr = new FileReader(file);
^
1 error
Java Exception Categories…
• Unchecked Exceptions
• An unchecked exception is an exception that occurs at the
time of execution. These are also called as Runtime
Exceptions. These include programming bugs, such as logic
errors or improper use of an API.
• Runtime exceptions are ignored at the time of compilation.
• Example: if you have declared an array of size 5 in your
program and try to call the 6th element of the array, an
ArrayIndexOutOfBoundsException exception occurs.
Java Exception Categories…
• Java Errors
• These are not exceptions at all, but problems that arise
beyond the control of the user or the programmer. Errors are
typically ignored in your code because you can rarely do
anything about an error. For example, if a stack overflow
occurs, an error will arise. They are also ignored at the time of
compilation.
Java Exception Hierarchy…
• All exception classes are subtypes of the
java.lang.Exception class. The exception class is
a subclass of the Throwable class. Other than the
exception class there is another subclass called
Error which is derived from the Throwable class.
• Errors are abnormal conditions that happen in case
of severe failures, these are not handled by the
Java programs. Errors are generated to indicate
errors generated by the runtime environment.
Example: JVM is out of memory. Normally,
programs cannot recover from errors.
• The Exception class has two main subclasses:
IOException class and RuntimeException Class.
Catching Exceptions: Exception
handling in Java
• A method catches an exception using a combination of
the try and catch keywords.
• A try/catch block is placed around the code that might
generate an exception.
• Code within a try/catch block is referred to as
protected code, and the syntax for using try/catch looks
like the following
Catching Exceptions: the try/catch
block
• The code which is prone to exceptions is placed in the try block.
When an exception occurs, that exception occurred is handled by
catch block associated with it.
• Every try block should be immediately followed either by a catch
block or finally block.
• A catch statement involves declaring the type of exception you
are trying to catch.
• If an exception occurs in protected code, the catch block (or
blocks) that follows the try is checked.
• If the type of exception that occurred is listed in a catch block, the
exception is passed to the catch block much as an argument is
passed into a method parameter.
Catching Exceptions: the try/catch
block…
• Example: Demonstrating Exception HandlingExample:
Demonstrating Exception Handling
• In following example, an array is declared with 2 elements.
Then the code tries to access the 3rd element of the array
which throws an exception.
Catching Exceptions: the try/catch
block…
• Multiple Catch Blocks
• A try block can be followed by multiple catch blocks. The
syntax for multiple catch blocks looks like the following:
Catching Exceptions: the try/catch
block…
• Multiple Catch Blocks…
• The previous statements demonstrate three catch blocks, but
you can have any number of them after a single try.
• If an exception occurs in the protected code, the exception is
thrown to the first catch block in the list.
• If the data type of the exception thrown matches
ExceptionType1, it gets caught there. If not, the exception
passes down to the second catch statement. This continues
until the exception either is caught or falls through all catches,
in which case the current method stops execution and the
exception is thrown down to the previous method on the call
stack.
Catching Exceptions: the try/catch
block…
• Multiple Catch Blocks: Example
Catching Exceptions: the
Throws/Throw Keywords
• If a method does not handle a checked exception, the
method must declare it using the throws keyword. The
throws keyword appears at the end of a method's
signature.
• You can throw an exception, either a newly instantiated
one or an exception that you just caught, by using the
throw keyword.
• Try to understand the difference between throws and
throw keywords:
• throws is used to postpone the handling of a checked
exception and throw is used to invoke an exception explicitly.
Catching Exceptions: the
Throws/Throw Keywords
• The following method declares that it throws a
RemoteException:
Catching Exceptions: the
Throws/Throw Keywords
• A method can declare that it throws more than one
exception, in which case the exceptions are declared in
a list separated by commas.
• For example, the following method declares that it throws a
RemoteException and an InsufficientFundsException
Catching Exceptions: finally block
• The finally block follows a try block or a catch block. A
finally block of code always executes, irrespective of
occurrence of an Exception.
• Using a finally block allows you to run any cleanup-type
statements that you want to execute, no matter what
happens in the protected code.
• Syntax:
Catching Exceptions: finally block…
• Example
Catching Exceptions…
• Note the following about try/catch…finally blocks:
• A catch clause cannot exist without a try statement.
• It is not compulsory to have finally clauses whenever a
try/catch block is present.
• The try block cannot be present without either catch clause or
finally clause.
• Any code cannot be present in between the try, catch, finally
blocks.
User-defined exceptions in Java
• You can create your own exceptions in Java. Keep the
following points in mind when writing your own
exception classes.
• All exceptions must be a child of Throwable.
• If you want to write a checked exception that is automatically
enforced by the Handle or Declare Rule, you need to extend
the Exception class.
• If you want to write a runtime exception, you need to extend
the RuntimeException class.
• Syntax:
User-defined exceptions in Java…
• You just need to extend the predefined Exception class
to create your own Exception.
• These are considered to be checked exceptions.
• The following InsufficientFundsException class is a user-
defined exception that extends the Exception class,
making it a checked exception.
• An exception class is like any other class, containing
useful fields and methods
User-defined exceptions in Java…
• Example:
User-defined exceptions in Java…
• Example…
• To demonstrate using our user-defined exception, the following
CheckingAccount class contains a withdraw() method that throws an
InsufficientFundsException:
User-defined exceptions in Java…
• Example…
User-defined exceptions in Java…
• Example…
• The following BankDemo program demonstrates invoking the deposit() and
withdraw() methods of CheckingAccount.

You might also like