Exception Handling in Java

Exception Handling in
Java
 
Int data=10/0;
exception
object
Is
handled
?
JVM
1)Prints out exception
description
2) Prints the stack trace
3) Terminate the program
Rest of the code is
executed
 
No
 
Yes
 
An object of
exception class
is thrown
T
r
y
-
c
a
t
c
h
 
B
l
o
c
k
try{
 
//statements that may cause an exception
}
catch (exception(type) e(object))
{
     
//error handling code
}
M
u
l
t
i
p
l
e
 
c
a
t
c
h
try {           //Protected code
}
catch(ExceptionType1 e1)
{
  
  
//Catch block
}
catch(ExceptionType2 e2)
{
  //Catch block
}
……
Preceding step
try block
statement
unmatched catch
matching catch
unmatched catch
next step
 
class Example2{
  
public static void main(String args[]){
try{        
 
int a[]=new int[7];
  
  
a[4]=30/0;       }
 catch(ArithmeticException e) {
 
 
System.out.println("Warning: ArithmeticException");
  }
 
catch(ArrayIndexOutOfBoundsException e){
 
System.out.println("Warning:ArrayIndexOutOfBoundsException"); 
}
 
catch(Exception e){
 
System.out.println("Warning: Some Other exception");   
}
System.out.println("Out of try-catch block...");
}
}
N
e
s
t
e
d
 
t
r
y
 
c
a
t
c
h
One try-catch block can be present in the another
try’s body. This is called 
Nesting of try
catch
 blocks.
Each time a try block does not have a catch
handler for a 
particular exception
, the stack is
unwound and the next try block’s catch (i.e.,
parent try block’s catch) handlers are inspected
for a match.
If no catch block matches, then the 
java run-time
system
 will 
handle the exception
.
 
Syntax of Nested try Catch
try
{
  
statement 1;
try  {
   
statement 2; 
 
}
catch(Exception e1)   {
       //Exception Message  
}
 
}
catch(Exception e2) 
//Catch of Main(parent) try block
{      
//Exception Message
}
W
h
a
t
 
i
s
 
F
i
n
a
l
l
y
 
B
l
o
c
k
A finally statement must be associated with
try statement
.
It identifies a block of statements that needs to be
executed regardless of whether or not an
exception occurs
 within the try block.
It will run regardless of whether an exception was
thrown and handled by the try and catch parts of
the block.
Try-catch-finally
In normal execution the finally block is executed after try
block.
When any exception occurs first the catch block is executed
and then finally block is executed.
Try
{
 …….
}
Finally
{
………
}
Try
{
 ……
}
catch(…)
{ ……..
}
Finally
{
}
Program Code
Exception
Occurred ?
Exception
Handled ?
Finally block is executed
 
no
 
Yes
 
no
 
Yes
Preceding step
try block
statement
unmatched catch
matching catch
unmatched catch
next step
finally
 
class
 Simple{
  
public
 
static
 
void
 main(String args[]){
  
try
{
   
int
 data=25/0;
   System.out.println(data);
  }
  
catch
(ArithmeticException e){
   
System.out.println(e);
  
}
  
finally
{
  
System.out.println("finally block is always executed");
 
}
  System.out.println("rest of the code...");
  }  }
T
h
r
o
w
i
n
g
 
o
u
r
 
O
w
n
 
E
x
c
e
p
t
i
o
n
s
throw keyword
In java we have already defined exception classes such as
ArithmeticException, NullPointerException
 etc.
These exceptions are implicitly thrown by JVM
The throw keyword is used to 
explicitly
 throw an
exception.
These exceptions are known as user-defined exceptions.
S
y
n
t
a
x
 
o
f
 
t
h
r
o
w
 
s
t
a
t
e
m
e
n
t
throw new  AnyThrowableInstance;
IOException e = new IOException();
   throw e;
class MyException extends Exception {
  public MyException (String msg) {   super(msg);    }
 }
class TestMyException {
  
public static void main(String[] args) {
       
 
int age=-2;
try {
 
 if(age < 0)
 
 
throw new MyException("Age can't be less than zero");
 
}
       catch (MyException e) {
           
  
 e.printStackTrace();
       }
}
t
h
r
o
w
s
 
k
e
y
w
o
r
d
The 
throws keyword
 is used to declare an exception.
It gives an information to the programmer that there
may occur an exception.
So it is better for the programmer to provide the
exception handling code so that normal flow can be
maintained.
S
y
n
t
a
x
 
o
f
 
t
h
r
o
w
s
 
k
e
y
w
o
r
d
:
void
 method_name() 
throws
 exception_class_name
{  
 
   
...   
 
}
import
 java.io.*;
class
 M {
 
void
 method() 
throws
 IOException{
  
throw
 
new
 IOException("device error");
 }
}
class
 Test{
   
public
 
static
 
void
 main(String args[])
throws
 IOException{
    Test t=
new
 Test();
    t.method();
    System.out.println("normal flow...");
  }
}
 
Common Questions
1.
What is exception? How it is handled? Explain with
suitable example.
2.
Explain following terms with respect to exception
1.
try
2.
catch
3.
throw
4.
Finally
3.
What are different types of errors? What is use of
throw, throws, finally.
4.
Write a program to throw a user defined exception
“String Mismatch” if two strings are not equal.
Slide Note
Embed
Share

Exception handling in Java is crucial for managing errors and ensuring smooth program execution. By using try, catch, and finally blocks, developers can gracefully handle exceptions, preventing program crashes. Nested try-catch blocks and multiple catch clauses offer flexibility in handling various types of exceptions thrown during runtime.

  • Java
  • Exception Handling
  • Error Management
  • Try-Catch Blocks

Uploaded on Nov 23, 2024 | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

E N D

Presentation Transcript


  1. Exception Handling in Java

  2. An object of exception class is thrown exception object Int data=10/0; Is Yes No handled ? JVM 1)Prints out exception description 2) Prints the stack trace 3) Terminate the program Rest of the code is executed

  3. Try Try- -catch Block catch Block try{ } catch (exception(type) e(object)) { //error handling code } //statements that may cause an exception

  4. Multiple catch catch try { //Protected code } catch(ExceptionType1 e1) { //Catch block } catch(ExceptionType2 e2) { //Catch block }

  5. Sequence of Events Preceding step try block statement unmatched catch matching catch unmatched catch next step

  6. class Example2{ try{ catch(ArithmeticException e) { System.out.println("Warning: ArithmeticException"); } public static void main(String args[]){ int a[]=new int[7]; a[4]=30/0; } catch(ArrayIndexOutOfBoundsException e){ System.out.println("Warning:ArrayIndexOutOfBoundsException"); } catch(Exception e){ System.out.println("Warning: Some Other exception"); } System.out.println("Out of try-catch block..."); } }

  7. Nested try catch Nested try catch One try-catch block can be present in the another try s body. This is called Nesting of try catch blocks. Each time a try block does not have a catch handler for a particular exception, the stack is unwound and the next try block s catch (i.e., parent try block s catch) handlers are inspected for a match. If no catch block matches, then the java run-time system will handle the exception.

  8. Syntax of Nested try Catch try { statement 1; try { catch(Exception e1) { //Exception Message } } catch(Exception e2) //Catch of Main(parent) try block { //Exception Message } statement 2; }

  9. What is Finally Block What is Finally Block A finally statement must be associated with a try statement. It identifies a block of statements that needs to be executed regardless of whether or not an exception occurs within the try block. It will run regardless of whether an exception was thrown and handled by the try and catch parts of the block.

  10. Try-catch-finally In normal execution the finally block is executed after try block. When any exception occurs first the catch block is executed and then finally block is executed. Try { } catch( ) { .. } Finally { } Try { . } Finally { }

  11. Program Code Yes no Exception Occurred ? Yes no Exception Handled ? Finally block is executed

  12. Sequence for finally clause Preceding step try block statement unmatched catch matching catch unmatched catch finally next step

  13. class Simple{ public static void main(String args[]){ try{ int data=25/0; System.out.println(data); } catch(ArithmeticException e){ System.out.println(e); } finally{ System.out.println("finally block is always executed"); } System.out.println("rest of the code..."); } }

  14. Throwing our Own Exceptions Throwing our Own Exceptions throw keyword In java we have already defined exception classes such as ArithmeticException, NullPointerException etc. These exceptions are implicitly thrown by JVM The throw keyword is used to explicitly throw an exception. These exceptions are known as user-defined exceptions.

  15. Syntax of throw statement Syntax of throw statement throw new AnyThrowableInstance; IOException e = new IOException(); throw e;

  16. class MyException extends Exception { public MyException (String msg) { super(msg); } } class TestMyException { public static void main(String[] args) { int age=-2; try { if(age < 0) throw new MyException("Age can't be less than zero"); } catch (MyException e) { e.printStackTrace(); } }

  17. throws throws keyword The throws keyword is used to declare an exception. It gives an information to the programmer that there may occur an exception. So it is better for the programmer to provide the exception handling code so that normal flow can be maintained. Syntax of throws keyword: void method_name() throws exception_class_name { ... }

  18. import java.io.*; class M { void method() throws IOException{ throw new IOException("device error"); } } class Test{ public static void main(String args[])throws IOException{ Test t=new Test(); t.method(); System.out.println("normal flow..."); } }

  19. throw keyword throws keyword throw is used to explicitly throw an exception. throws is used to declare an exception. checked exception can not be propagated without throws. checked exception can be propagated with throws. throw is followed by an instance. throws is followed by class. throw is used within the method. throws is used with the method signature. You cannot throw multiple exception You can declare multiple exception e.g. public void method()throws IOException,SQLException.

  20. Common Questions 1. What is exception? How it is handled? Explain with suitable example. 2. Explain following terms with respect to exception 1. try 2. catch 3. throw 4. Finally 3. What are different types of errors? What is use of throw, throws, finally. 4. Write a program to throw a user defined exception String Mismatch if two strings are not equal.

More Related Content

giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#