SlideShare a Scribd company logo
Programming in Java
Lecture 14: Exception Handling
By
Ravi Kant Sahu
Asst. Professor
Lovely Professional University, PunjabLovely Professional University, Punjab
ExcEption
Introduction
• An exception is an event, which occurs during the execution of a
program, that disrupts the normal flow of the program's
instructions.
• A Java exception is an object that describes an exceptional (that
is, error) condition that has occurred in a piece of code.
• An exception is an abnormal condition that arises in a code
sequence at run time.
• In other words, an exception is a run-time error.
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
Exception Handling
class Exception
{
public static void main (String arr[])
{
System.out.println(“Enter two numbers”);
Scanner s = new Scanner (System.in);
int x = s.nextInt();
int y = s.nextInt();
int z = x/y;
System.out.println(“result of division is : ” + z);
}
}
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
Exception Handling
• An Exception is a run-time error that can be handled
programmatically in the application and does not result in
abnormal program termination.
• Exception handling is a mechanism that facilitates
programmatic handling of run-time errors.
• In java, each run-time error is represented by an object.
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
Exception (Class Hierarchy)
• At the root of the class hierarchy, there is an abstract class named
‘Throwable’which represents the basic features of run-time errors.
• There are two non-abstract sub-classes of Throwable.
• Exception : can be handled
• Error : can’t be handled
• RuntimeException is the sub-class of Exception.
• Exceptions of this type are automatically defined for the programs
that we write and include things such as division by zero and invalid
array indexing.
• Each exception is a run-time error but all run-time errors are not
exceptions.
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
Throwable
Exception Error
Run-time Exception - VirtualMachine
• IOEXception - ArithmeticException - NoSuchMethod
• SQLException - ArrayIndexOutOf - StackOverFlow
BoundsException
- NullPointerException
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
Checked Exception
Unchecked Exception
Checked Exception
• Checked Exceptions are those, that have to be either caught or
declared to be thrown in the method in which they are raised.
Unchecked Exception
• Unchecked Exceptions are those that are not forced by the
compiler either to be caught or to be thrown.
• Unchecked Exceptions either represent common programming
errors or those run-time errors that can’t be handled through
exception handling.
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
Commonly used sub-classes of Exception
• ArithmeticException
• ArrayIndexOutOfBoundsException
• NumberFormatException
• NullPointerException
• IOException
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
Commonly used sub-classes of Errors
• VirualMachineError
• StackOverFlowError
• NoClassDefFoundError
• NoSuchMethodError
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
Uncaught Exceptions
class Exception_Demo
{
public static void main(String args[])
{
int d = 0;
int a = 42 / d;
}
}
• When the Java run-time system detects the attempt to divide by
zero, it constructs a new exception object and then throws this
exception.
• once an exception has been thrown, it must be caught by an
exception handler and dealt with immediately.
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
• In the previous example, we haven’t supplied any exception
handlers of our own.
• So the exception is caught by the default handler provided by the
Java run-time system.
• Any exception that is not caught by your program will ultimately be
processed by the default handler.
• The default handler displays a string describing the exception, prints
a stack trace from the point at which the exception occurred, and
terminates the program.
java.lang.ArithmeticException: / by zero at Exc0.main(Exc0.java:4)
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
Why Exception Handling?
• When the default exception handler is provided by the Java
run-time system , why Exception Handling?
• Exception Handling is needed because:
– it allows to fix the error, customize the message .
– it prevents the program from automatically terminating
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
ExcEption Handling
Keywords for Exception Handling
• try
• catch
• throw
• throws
• finally
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
Keywords for Exception Handling
try
• used to execute the statements whose execution may result in
an exception.
try {
Statements whose execution may cause an exception
}
Note: try block is always used either with catch or finally or with
both.
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
Keywords for Exception Handling
catch
• catch is used to define a handler.
• It contains statements that are to be executed when the
exception represented by the catch block is generated.
• If program executes normally, then the statements of catch
block will not executed.
• If no catch block is found in program, exception is caught by
JVM and program is terminated.
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
class Divide{
public static void main(String arr[]){
try {
int a= Integer.parseInt(arr[0]);
int b= Integer.parseInt(arr[1]);
int c = a/b;
System.out.println(“Result is: ”+c);
}
catch (ArithmeticException e)
{System.out.println(“Second number must be non-zero”);}
catch (NumberFormatException n)
{System.out.println(“Arguments must be Numeric”);}
catch (ArrayIndexOutOfBoundsException a)
{System.out.println(“Invalid Number of arguments”);}
}
}
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
Nested Try’s
class NestedTryDemo {
public static void main(String args[]){
try {
int a = Integer.parseInt(args[0]);
try {
int b = Integer.parseInt(args[1]);
System.out.println(a/b);
}
catch (ArithmeticException e)
{
System.out.println(“Div by zero error!");
}
}
catch (ArrayIndexOutOfBoundsException) {
System.out.println(“Need 2 parameters!");
}
}}
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
Defining Generalized Exception Handler
• A generalized exception handler is one that can handle the
exceptions of all types.
• If a class has a generalized as well as specific exception
handler, then the generalized exception handler must be the
last one.
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
class Divide{
public static void main(String arr[]){
try {
int a= Integer.parseInt(arr[0]);
int b= Integer.parseInt(arr[1]);
int c = a/b;
System.out.println(“Result is: ”+c);
}
catch (Throwable e)
{
System.out.println(e);
}
}
}
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
Keywords for Exception Handling
throw
• used for explicit exception throwing.
throw(Exception obj);
‘throw’ keyword can be used:
• to throw user defined exception
• to customize the message to be displayed by predefined exceptions
• to re-throw a caught exception
• Note: System-generated exceptions are automatically thrown by
the Java run-time system.
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
class ThrowDemo
{
static void demo()
{
try {
throw new NullPointerException("demo");
}
catch(NullPointerException e)
{
System.out.println("Caught inside demo.");
throw e; // rethrow the exception
}
}
public static void main(String args[])
{
try {
demo();
}
catch(NullPointerException e)
{
System.out.println("Recaught: " + e);
}
}
}
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
Keywords for Exception Handling
throws
• A throws clause lists the types of exceptions that a method might
throw.
type method-name(parameter-list) throws exception-list
{
// body of method
}
• This is necessary for all exceptions, except those of type Error or
Runtime Exception, or any of their subclasses.
• All other exceptions that a method can throw must be declared in
the throws clause. If they are not, a compile-time error will result.
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
import java.io.*;
public class ThrowsDemo
{
public static void main( String args []) throws IOException
{
char i;
BufferedReader br = new BufferedReader(new
InputStreamReader(System.in));
System.out.println("Enter character, 'q' to quit");
do{
i = (char) br.read();
System.out.print(i);
}while(i!='q');
}
}
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
Keywords for Exception Handling
Finally
• finally creates a block of code that will be executed after a
try/catch block has completed and before the code following
the try/catch block.
• The finally block will execute whether or not an exception is
thrown.
• If an exception is thrown, the finally block will execute even if
no catch statement matches the exception.
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
• If a finally block is associated with a try, the finally block will
be executed upon conclusion of the try.
• The finally clause is optional. However, each try statement
requires at least one catch or a finally clause.
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
Chained Exceptions
• Throwing an exception along with another exception forms a
chained exception.
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
Chained Exceptions
public class ChainedExceptionDemo {
public static void main(String[] args) {
try { method1(); }
catch (Exception ex) { ex.printStackTrace();} }
public static void method1() throws Exception {
try { method2(); }
catch (Exception ex) {
throw new Exception("New info from method1”, ex); } }
public static void method2() throws Exception {
throw new Exception("New info from method2");
} }
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
Defining Custom Exceptions
• We can create our own Exception sub-classes by inheriting
Exception class.
• The Exception class does not define any methods of its own.
• It inherits those methods provided by Throwable.
• Thus, all exceptions, including those that we create, have the
methods defined by Throwable available to them.
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
Constructor for creating Exception
• Exception( )
• Exception(String msg)
• A custom exception class is represented by a subclass of
Exception / Throwable.
• It contains the above mentioned constructor to initialize
custom exception object.
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
class Myexception extends Throwable
{
public Myexception(int i)
{
System.out.println("you have entered ." +i +" : It exceeding
the limit");
}
}
public class ExceptionTest {
public void show(int i) throws Myexception {
if(i>100)
throw new Myexception(i);
else
System.out.println(+i+" is less then 100 it is ok");
}
public static void main(String []args){
int i=Integer.parseInt(args[0]);
int j=Integer.parseInt(args[1]);
ExceptionTest t=new ExceptionTest();
try{
t.show(i); t.show(j);
}
catch(Throwable e) {
System.out.println("catched exception is "+e);
}
}
}
Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)

More Related Content

PDF
Distributed Programming (RMI)
PDF
String handling(string buffer class)
PDF
Networking
PDF
Java beans
PDF
PDF
Multi threading
PDF
Swing api
PDF
Packages
Distributed Programming (RMI)
String handling(string buffer class)
Networking
Java beans
Multi threading
Swing api
Packages

What's hot (20)

PPTX
Basics of Java
PPTX
Java interview questions 1
PPTX
OCP Java (OCPJP) 8 Exam Quick Reference Card
PDF
Gui programming (awt)
PPTX
java: basics, user input, data type, constructor
PPTX
Java interview questions 2
PDF
Advanced java interview questions
PPT
Java Basics
PPTX
OCA Java SE 8 Exam Chapter 1 Java Building Blocks
PPTX
Core java
PPTX
Playing with Java Classes and Bytecode
PDF
Cracking OCA and OCP Java 8 Exams
PDF
Core Java
PPTX
Java reflection
PDF
Lambdas and Streams in Java SE 8: Making Bulk Operations simple - Simon Ritter
PPT
Presentation on java
PPTX
PDF
Basic Java Programming
PPTX
Java 101 Intro to Java Programming
PPT
Java Tutorial
Basics of Java
Java interview questions 1
OCP Java (OCPJP) 8 Exam Quick Reference Card
Gui programming (awt)
java: basics, user input, data type, constructor
Java interview questions 2
Advanced java interview questions
Java Basics
OCA Java SE 8 Exam Chapter 1 Java Building Blocks
Core java
Playing with Java Classes and Bytecode
Cracking OCA and OCP Java 8 Exams
Core Java
Java reflection
Lambdas and Streams in Java SE 8: Making Bulk Operations simple - Simon Ritter
Presentation on java
Basic Java Programming
Java 101 Intro to Java Programming
Java Tutorial
Ad

Viewers also liked (18)

PDF
Event handling
PDF
Classes and Nested Classes in Java
PDF
String handling(string class)
PDF
Introduction to Java Programming
PDF
Internationalization
PDF
Servlets
PDF
Methods and constructors
PDF
PDF
Keywords and classes
PDF
Java Inner Classes
PDF
Basic IO
PDF
L2 datatypes and variables
PDF
String handling(string buffer class)
PDF
Wrapper classes
PDF
Packages
PDF
Operators in java
PDF
Inheritance
PDF
Control structures in Java
Event handling
Classes and Nested Classes in Java
String handling(string class)
Introduction to Java Programming
Internationalization
Servlets
Methods and constructors
Keywords and classes
Java Inner Classes
Basic IO
L2 datatypes and variables
String handling(string buffer class)
Wrapper classes
Packages
Operators in java
Inheritance
Control structures in Java
Ad

Similar to Exception handling (20)

PPTX
L14 exception handling
PPTX
Z blue exception
PPTX
Chapter 5
PPT
A36519192_21789_4_2018_Exception Handling.ppt
PPTX
Chap2 exception handling
PPTX
Java-Unit 3- Chap2 exception handling
PDF
Class notes(week 8) on exception handling
PPTX
Exceptionhandling
PPTX
Exception handling in java
DOCX
Class notes(week 8) on exception handling
DOCX
VTU MCA 2022 JAVA Exceeption Handling.docx
PPTX
Exception handling and throw and throws keyword in java.pptx
PPTX
Interface andexceptions
PPTX
Java Exceptions and Exception Handling
PPT
Exception Handling in java masters of computer application
PPTX
Exception handling
DOCX
MODULE5_EXCEPTION HANDLING.docx
PPTX
Exceptions
PPTX
Exceptions
PDF
Java unit 11
L14 exception handling
Z blue exception
Chapter 5
A36519192_21789_4_2018_Exception Handling.ppt
Chap2 exception handling
Java-Unit 3- Chap2 exception handling
Class notes(week 8) on exception handling
Exceptionhandling
Exception handling in java
Class notes(week 8) on exception handling
VTU MCA 2022 JAVA Exceeption Handling.docx
Exception handling and throw and throws keyword in java.pptx
Interface andexceptions
Java Exceptions and Exception Handling
Exception Handling in java masters of computer application
Exception handling
MODULE5_EXCEPTION HANDLING.docx
Exceptions
Exceptions
Java unit 11

Recently uploaded (20)

PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
Cloud computing and distributed systems.
PDF
Encapsulation theory and applications.pdf
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
NewMind AI Monthly Chronicles - July 2025
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
A Presentation on Artificial Intelligence
PDF
Empathic Computing: Creating Shared Understanding
PDF
Electronic commerce courselecture one. Pdf
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Approach and Philosophy of On baking technology
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Network Security Unit 5.pdf for BCA BBA.
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
“AI and Expert System Decision Support & Business Intelligence Systems”
Cloud computing and distributed systems.
Encapsulation theory and applications.pdf
Review of recent advances in non-invasive hemoglobin estimation
Mobile App Security Testing_ A Comprehensive Guide.pdf
Advanced methodologies resolving dimensionality complications for autism neur...
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
NewMind AI Monthly Chronicles - July 2025
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
A Presentation on Artificial Intelligence
Empathic Computing: Creating Shared Understanding
Electronic commerce courselecture one. Pdf
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Approach and Philosophy of On baking technology
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Reach Out and Touch Someone: Haptics and Empathic Computing
Chapter 3 Spatial Domain Image Processing.pdf
Network Security Unit 5.pdf for BCA BBA.

Exception handling

  • 1. Programming in Java Lecture 14: Exception Handling By Ravi Kant Sahu Asst. Professor Lovely Professional University, PunjabLovely Professional University, Punjab
  • 3. Introduction • An exception is an event, which occurs during the execution of a program, that disrupts the normal flow of the program's instructions. • A Java exception is an object that describes an exceptional (that is, error) condition that has occurred in a piece of code. • An exception is an abnormal condition that arises in a code sequence at run time. • In other words, an exception is a run-time error. Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 4. Exception Handling class Exception { public static void main (String arr[]) { System.out.println(“Enter two numbers”); Scanner s = new Scanner (System.in); int x = s.nextInt(); int y = s.nextInt(); int z = x/y; System.out.println(“result of division is : ” + z); } } Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 5. Exception Handling • An Exception is a run-time error that can be handled programmatically in the application and does not result in abnormal program termination. • Exception handling is a mechanism that facilitates programmatic handling of run-time errors. • In java, each run-time error is represented by an object. Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 6. Exception (Class Hierarchy) • At the root of the class hierarchy, there is an abstract class named ‘Throwable’which represents the basic features of run-time errors. • There are two non-abstract sub-classes of Throwable. • Exception : can be handled • Error : can’t be handled • RuntimeException is the sub-class of Exception. • Exceptions of this type are automatically defined for the programs that we write and include things such as division by zero and invalid array indexing. • Each exception is a run-time error but all run-time errors are not exceptions. Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 7. Throwable Exception Error Run-time Exception - VirtualMachine • IOEXception - ArithmeticException - NoSuchMethod • SQLException - ArrayIndexOutOf - StackOverFlow BoundsException - NullPointerException Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India) Checked Exception Unchecked Exception
  • 8. Checked Exception • Checked Exceptions are those, that have to be either caught or declared to be thrown in the method in which they are raised. Unchecked Exception • Unchecked Exceptions are those that are not forced by the compiler either to be caught or to be thrown. • Unchecked Exceptions either represent common programming errors or those run-time errors that can’t be handled through exception handling. Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 9. Commonly used sub-classes of Exception • ArithmeticException • ArrayIndexOutOfBoundsException • NumberFormatException • NullPointerException • IOException Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 10. Commonly used sub-classes of Errors • VirualMachineError • StackOverFlowError • NoClassDefFoundError • NoSuchMethodError Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 11. Uncaught Exceptions class Exception_Demo { public static void main(String args[]) { int d = 0; int a = 42 / d; } } • When the Java run-time system detects the attempt to divide by zero, it constructs a new exception object and then throws this exception. • once an exception has been thrown, it must be caught by an exception handler and dealt with immediately. Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 12. • In the previous example, we haven’t supplied any exception handlers of our own. • So the exception is caught by the default handler provided by the Java run-time system. • Any exception that is not caught by your program will ultimately be processed by the default handler. • The default handler displays a string describing the exception, prints a stack trace from the point at which the exception occurred, and terminates the program. java.lang.ArithmeticException: / by zero at Exc0.main(Exc0.java:4) Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 13. Why Exception Handling? • When the default exception handler is provided by the Java run-time system , why Exception Handling? • Exception Handling is needed because: – it allows to fix the error, customize the message . – it prevents the program from automatically terminating Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 15. Keywords for Exception Handling • try • catch • throw • throws • finally Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 16. Keywords for Exception Handling try • used to execute the statements whose execution may result in an exception. try { Statements whose execution may cause an exception } Note: try block is always used either with catch or finally or with both. Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 17. Keywords for Exception Handling catch • catch is used to define a handler. • It contains statements that are to be executed when the exception represented by the catch block is generated. • If program executes normally, then the statements of catch block will not executed. • If no catch block is found in program, exception is caught by JVM and program is terminated. Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 18. class Divide{ public static void main(String arr[]){ try { int a= Integer.parseInt(arr[0]); int b= Integer.parseInt(arr[1]); int c = a/b; System.out.println(“Result is: ”+c); } catch (ArithmeticException e) {System.out.println(“Second number must be non-zero”);} catch (NumberFormatException n) {System.out.println(“Arguments must be Numeric”);} catch (ArrayIndexOutOfBoundsException a) {System.out.println(“Invalid Number of arguments”);} } } Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 19. Nested Try’s class NestedTryDemo { public static void main(String args[]){ try { int a = Integer.parseInt(args[0]); try { int b = Integer.parseInt(args[1]); System.out.println(a/b); } catch (ArithmeticException e) { System.out.println(“Div by zero error!"); } } catch (ArrayIndexOutOfBoundsException) { System.out.println(“Need 2 parameters!"); } }} Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 20. Defining Generalized Exception Handler • A generalized exception handler is one that can handle the exceptions of all types. • If a class has a generalized as well as specific exception handler, then the generalized exception handler must be the last one. Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 21. class Divide{ public static void main(String arr[]){ try { int a= Integer.parseInt(arr[0]); int b= Integer.parseInt(arr[1]); int c = a/b; System.out.println(“Result is: ”+c); } catch (Throwable e) { System.out.println(e); } } } Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 22. Keywords for Exception Handling throw • used for explicit exception throwing. throw(Exception obj); ‘throw’ keyword can be used: • to throw user defined exception • to customize the message to be displayed by predefined exceptions • to re-throw a caught exception • Note: System-generated exceptions are automatically thrown by the Java run-time system. Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 23. class ThrowDemo { static void demo() { try { throw new NullPointerException("demo"); } catch(NullPointerException e) { System.out.println("Caught inside demo."); throw e; // rethrow the exception } } public static void main(String args[]) { try { demo(); } catch(NullPointerException e) { System.out.println("Recaught: " + e); } } } Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 24. Keywords for Exception Handling throws • A throws clause lists the types of exceptions that a method might throw. type method-name(parameter-list) throws exception-list { // body of method } • This is necessary for all exceptions, except those of type Error or Runtime Exception, or any of their subclasses. • All other exceptions that a method can throw must be declared in the throws clause. If they are not, a compile-time error will result. Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 25. import java.io.*; public class ThrowsDemo { public static void main( String args []) throws IOException { char i; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Enter character, 'q' to quit"); do{ i = (char) br.read(); System.out.print(i); }while(i!='q'); } } Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 26. Keywords for Exception Handling Finally • finally creates a block of code that will be executed after a try/catch block has completed and before the code following the try/catch block. • The finally block will execute whether or not an exception is thrown. • If an exception is thrown, the finally block will execute even if no catch statement matches the exception. Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 27. • If a finally block is associated with a try, the finally block will be executed upon conclusion of the try. • The finally clause is optional. However, each try statement requires at least one catch or a finally clause. Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 28. Chained Exceptions • Throwing an exception along with another exception forms a chained exception. Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 29. Chained Exceptions public class ChainedExceptionDemo { public static void main(String[] args) { try { method1(); } catch (Exception ex) { ex.printStackTrace();} } public static void method1() throws Exception { try { method2(); } catch (Exception ex) { throw new Exception("New info from method1”, ex); } } public static void method2() throws Exception { throw new Exception("New info from method2"); } } Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 30. Defining Custom Exceptions • We can create our own Exception sub-classes by inheriting Exception class. • The Exception class does not define any methods of its own. • It inherits those methods provided by Throwable. • Thus, all exceptions, including those that we create, have the methods defined by Throwable available to them. Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 31. Constructor for creating Exception • Exception( ) • Exception(String msg) • A custom exception class is represented by a subclass of Exception / Throwable. • It contains the above mentioned constructor to initialize custom exception object. Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)
  • 32. class Myexception extends Throwable { public Myexception(int i) { System.out.println("you have entered ." +i +" : It exceeding the limit"); } }
  • 33. public class ExceptionTest { public void show(int i) throws Myexception { if(i>100) throw new Myexception(i); else System.out.println(+i+" is less then 100 it is ok"); } public static void main(String []args){ int i=Integer.parseInt(args[0]); int j=Integer.parseInt(args[1]); ExceptionTest t=new ExceptionTest(); try{ t.show(i); t.show(j); } catch(Throwable e) { System.out.println("catched exception is "+e); } } }
  • 34. Ravi Kant Sahu, Asst. Professor @ Lovely Professional University, Punjab (India)