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

OOPLecture9Exception Handling

The document discusses exception handling in Java programming. It defines different types of program errors like syntax errors, runtime errors, and logical errors. It then describes exception handling mechanisms in Java like try-catch blocks, checked and unchecked exceptions, and finally blocks. Key exception related terms like throw, throws, and exception propagation are also explained.

Uploaded by

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

OOPLecture9Exception Handling

The document discusses exception handling in Java programming. It defines different types of program errors like syntax errors, runtime errors, and logical errors. It then describes exception handling mechanisms in Java like try-catch blocks, checked and unchecked exceptions, and finally blocks. Key exception related terms like throw, throws, and exception propagation are also explained.

Uploaded by

Jaroos Mohamed
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 23

HNDIT 1209

Programming in
JAVA

Exception Handling
Program Errors
• Syntax errors
– Caused by an incorrectly written code such as
misspelled keyword or variable, and incomplete code

• Runtime errors
– Occurs when a statement attempts an operation that
is impossible to carry out
– Ex: division by zero

• Logical errors
– Occurs when code complies and runs without
generating an error, but the result produced is
incorrect
Run time errors
• Occurs at program run time
• Condition that changes the normal flow of
execution
– Program run out of memory
– File does not exist in the given path
– Network connections are dropped
– OS limitations
Exception
• Unexpected behavior of program
• An exception is an event, which occurs during
the execution of a program, that disrupts the
normal flow of the program's instructions.
exception object
• When an error occurs within a method, the
method creates an object and hands it off to the
runtime system
• The object, called an exception object
• contains information about the error, including its
type and the state of the program when the error
occurred.
• Creating an exception object and handing it to
the runtime system is called throwing an
exception.
Hierarchy of Java Exception classes
Types of Java Exceptions
• Checked exceptions
• Unchecked
– Runtime exceptions
– Errors
Types of Exceptions
• Checked exceptions
– Occurs at the compile time
– Also called as compile time exceptions.
– Cannot be ignored at the time of compilation by
programmer.
– All exceptions are checked exceptions, other than
Error, RuntimeException, and their subclasses

• IOException
• SQLException
• ClassNotFoundException
• IllegalAccessException
Types of Exceptions
• Runtime exceptions
– At the time of execution.
– Never checked
– These include programming bugs, such as logic
errors or improper use of an API.

• ArithmeticException
• NullPointerException
• ArrayIndexOutOfBoundsException
• InvalidArgumentException
• NumberFormatException
Types of Exceptions
• Errors
– 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.
OutOfMemoryError
VirtualMachineError
AssertionError
Exception handling
• Exception handling in java is one of the
powerful mechanism to handle the runtime
errors
try catch block
• Syntax
try
{
//Protected code
}
catch(ExceptionName e1)
{
//Catch block
}
• Example 1
try catch block
public class Main
{
public static void main(String[] args) {
try{
int a=4, b=0;
int c=a/b;
System.out.println(c);
}
catch(ArithmeticException E)
{
System.out.print("Error"+ E.toString());
}
}
}
Multiple catch Blocks
try
{ //Protected code
}
catch(ExceptionType1 e1)
{ //Catch block
}
catch(ExceptionType2 e2)
{ //Catch block
}
catch(ExceptionType3 e3)
{ //Catch block
}
• Example 2
try catch block
public class Main
{
public static void main(String[] args) {
try{
int a=4;
int b=0;
int c=a/b;
System.out.println(c);
}
catch(ArithmeticException E)
{
System.out.print("Error"+ E.toString());
}
}
}
finally Block
• A finally block of code always executes,
whether or not an exception has occurred.
try catch with finally
• Example 3
public class ExcepTest
{ public static void main(String[] args)
{
try{
int a=4;
int b=0;
int c=a/b;
System.out.println(c);
}
catch(ArithmeticException E)
{ System.out.print("Error"+ E.toString()); }
finally
{ System.out.print("End"); }
}
}
Throwable
• Superclass of all errors and exceptions
• All exceptions and errors extend from a
common java.lang.Throwable parent class
Nesting try blocks
public class Demo
{
public static void main(String args[])
{
try
{
try
{
System.out.println("going to divide");
int b =39/0;
}
catch(ArithmeticException e)
{ System.out.println(e); }
System.out.println("other statement");
}
catch(Exception e){System.out.println("handeled");}
System.out.println("normal flow..");
}
}
Exception Propagation
class Demo
{ An exception is first
void m(){ int data=50/0; } thrown from the top of the
void n(){ m(); } stack is not caught, it drops
void p() down to the previous
{ method in the call stack.
try{
n();
}
catch(Exception e)
{System.out.println("exception handled");}
}
public static void main(String args[])
{
Demo obj=new Demo();
obj.p();
System.out.println("normal flow...");
}
}
throw
• The Java throw keyword is used to explicitly
throw an exception.
• We can throw either checked or uncheked
exception in java by throw keyword. The
throw keyword is mainly used to throw
custom exception.
throw new ArithmeticException("not valid");

• Refer Lab8
throws
• Keyword in the signature of method to
indicate that method might throw one of the
listed type exceptions
• Use throws keyword to delegate the
responsibility of exception handling to the
caller (method or JVM), then caller method is
responsible to handle that exception.
• throws keyword is required only for checked
exception and usage of throws keyword for
unchecked exception is meaningless.
class TestVar
{
static void fun() throws IllegalAccessException
{
System.out.println("Inside fun(). ");
throw new IllegalAccessException("demo");
}
public static void main(String args[])
{
try
{ fun(); }
catch(Exception e)
{
System.out.println("Caught in main"+e.toString());
}
}
}

You might also like