Exception Handling In Java Catch Throw BY NEHA KUAMRI
Exception  Exception is an abnormal condition that arises at run time.  Event that disrupts the normal flow of the program.  It is an object which is thrown at runtime. Exception Handling  Exception Handling is a mechanism to handle runtime errors.  Normal flow of the application can be maintained.  It is an object which is thrown at runtime.  Exception handling done with the exception object.
Types of Errors There are three categories of errors:  Syntax errors - arise because the rules of the language have not been followed. They are detected by the compiler.  Runtime errors – occur while the program is running if the environment detects an operation that is impossible to carry out.  Logic errors – occur when a program doesn’t perform the way it was intended to.
Types of Exception • There are mainly two types of exceptions: • Checked • Unchecked – E.g. error • The sun microsystem says there are three types of exceptions: • Checked Exception – are checked at compile-time. • Unchecked Exception – are not checked at compile-time rather they are checked at runtime. • Error
Checked Exception • Classes that extends Throwable class RuntimeException and Error are known as checked exceptions. Checked Exception means that compiler forces the programmer to check and deal with the exceptions. e.g. IOException, SQLException etc. Unchecked Exception • Classes that extends RuntimeException, Error and their subclasses are known as unchecked exceptions e.g. ArithmeticException, NullPointerException etc. Error • Error is irrecoverable should not try to catch. e.g. OutOfMemoryError, VirtualMachineError etc.
Exception Classes Object Throwable Exception ClassNotFoundException IOException AWTException RuntimeException ArithmeticException NullPointerException IndexOutOfBoundException IllegalArgumentException Several more classes Several more classes Error LinkageError VirtualMachineError AWTError Several more classes
System Errors Object Throwable Exception ClassNotFoundException IOException AWTException RuntimeException ArithmeticException NullPointerException IndexOutOfBoundException IllegalArgumentException Several more classes Several more classes Error LinkageError VirtualMachineError AWTError Several more classes System errors are thrown by JVM and represented in the Error class. The Error class describes internal system errors. Such errors rarely occur.
Exceptions Object Throwable Exception ClassNotFoundException IOException AWTException RuntimeException ArithmeticException NullPointerException IndexOutOfBoundException IllegalArgumentException Several more classes Several more classes Error LinkageError VirtualMachineError AWTError Several more classes Exception describes errors caused by your program and external circumstances. These errors can caught and handled by your program.
Runtime Exceptions Object Throwable Exception ClassNotFoundException IOException AWTException RuntimeException ArithmeticException NullPointerException IndexOutOfBoundException IllegalArgumentException Several more classes Several more classes Error LinkageError VirtualMachineError AWTError Several more classes RuntimeException is caused by programming errors, such as bad casting, numeric errors etc.
Exception Handling Terms • try – used to enclose a segment of code that may produce a exception. • catch – placed directly after the try block to handle one or more exception types. • Throw – to generate an exception or to describe an instance of an exception. • finally – optional statement used after a try-catch block to run a segment of code regardless if exception is generated.
Exceptions - Syntax try{ //code which might throw an exception } catch(ExceptionClass object1){ //code to handle an exception } catch(ExceptionClass object2){ //code to handle an exception } finally{ //ALWAYS EXCEUTED WHETHER AN EXCETPTION WAS THROWN OR NOT }
Class A{ public static void main(String args[]){ int data=50/0; System.out.println(“Rest of the code….”); } } Output: Exception in thread main java.lang.ArithemeticException:/by zero Rest of the code is not executed (rest of the code…) statement is not printed. Example 1.
 Java Virtual Machine (JVM) first checks whether the exception is handled or not.  If exception is not handled, JVM provides a default exception handler that performs the following tasks:  Prints out exception description.  Prints the stack trace (Hierarchy of methods where the exception occurred).  Cause the program to terminate.  If exception is handled by the application programmer, normal flow of the application is maintained i.e. rest of the code is executed.
Example 2. Class A{ Public static void main(String args[]){ try{ int data=50/0; }catch(ArithmeticException e){ System.out.println(e); }System.out.println(“rest of the code…”); } } Output: Exception in thread main java.lang.ArithmeticException:/by zero rest of the code….
Multiple catch block: • If more than one exception can occur, then we use multiple catch blocks. • When an exception is thrown, each catch statements is inspected in order, and the first one whose type matches that of the exception is executed. • After one catch statement executes, the other are bypassed
Multiple Catch Exceptions - Syntax Try{ //code which might throw an exception } Catch(ExceptionClass object1){ //code to handle an exception } Catch(ExceptionClass object2){ //code to handle an exception }
Nested try Statements • A try statement can be inside the block of another try. • Each time a try statement is entered, the context of that exception is pushed on the stack. • If an inner try statement does not have a catch, then the next try statement’s catch handlers are inspected for a match. • If a method call within a try block has try block within it, then it is still nested try.
Nested try block Try{ statement 1; statement 2; try{ statement 1; statement 2; }catch(Exception e){…..} }catch(Exception e){……}
Example 3. Class A{ 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); }try{ int a[]=new int[5]; a[5]=4; }catch(ArrayIndexOutOfBoundException e){ System.out.println(e); } System.out.println(“other statement”); }catch(Exception e){ System.out.println(“handled”); } System.out.println(“normal flow…”); } }
Finally block  Finally block is a block that is always executed.  To perform some important tasks such as closing connection, stream etc.  Used to put “cleanup” code such as closing a file, closing connection etc.  Finally creates a block of code that will be executed after a try/catch block has completed.  Finally block will be executed whether or not an exception is thrown.  Each try clause requires at least one catch or finally clause.  Note: Before terminating the program, JVM executes finally clock (if any).  Note: finally must be followed by try or catch block.
Exception occurred? Program code Exception handled? Finally block is executed no yes no yes
Example 4. Class A{ 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(“rest of the code…”); } }
Throw keyword • Throw keyword is a keyword used to explicitly throw an exception / custom exception. throw new ExceptionName(“Error Message”); • Throw either checked or unchecked exception. throw new ThrowbleInstance • ThrowableInstance must be an object of type Throwable / subclass Throwable • There are two ways to obtain a Throwable objects: • Using a parameter into a catch clause. • Creating one with the new operator.
Example 5. public class bank{ public static void main(String args[]){ int balance = 100, withdraw = 1000; if(balance<withdraw){ //ArithmeticException e = new ArithmeticException(No money please”); //throw r; //throw new ArithmeticException(“No Money”); }else{ System.out.println(“Draw & enjoy Sir/Mam, Best wishes of the day”); } } }
Example 6. Import java.io.*; Public class Example{ public static void main(String args[]) throws IOException{ DataInputStream dis = new DataInputStream(System.in); int x = Integer.parseInt(dis.readLine()); if(x<0){ throw new illegalArgumentException(); throw new illegalArgumentException(“You have entered no”+””+ x +””+”which is less than 0”); }else{ System.out.println(“The no is “+x); } } }
throws • If a method is capable of causing an exception that it does not handle, it must specify this behaviour so that callers of the method can guard themselves against that exception. Type method-name (parameter-list) throws exception-list{ //body of method } • It is not applicable for Error or RuntimeException, or any of their subclasses.
Error: beyond your control e.g. you are unable to do anything. E.g. VirtualMachineError or StackOverFlowError. Throw keyword • Throw is used to explicitly throw an exception. • Checked exception can not be propagated without throws. • Throw is followed by an instance. • Throw is used within the method. • You cannot throw multiple exception. Throws keyword • Throws is used to declare an exception. • Checked exception can be propagated with throws. • Throws is followed by class. • Throws is used with the method signature. • You can declare multiple exception e.g. public void method() throws IOException, SQLException. Unchecked Exception: under your control so correct your code.
Create Our Own Exception Class NumberRangeException extends Exception{ String msg; NumberRangeException(){ msg = new String(“Enter a number between 20 and 100”); } }
Public class My_Exception{ public static void main(String args[]){ try{ int x = 10; if(x < 20 || x > 100) throw new NumberRangeException(); }catch(NumberRangeException e){ System.out.println(e); } } }
Thank You… All Content Written By Neha Kumari

Java-Exception Handling Presentation. 2024

  • 1.
    Exception Handling InJava Catch Throw BY NEHA KUAMRI
  • 2.
    Exception  Exception isan abnormal condition that arises at run time.  Event that disrupts the normal flow of the program.  It is an object which is thrown at runtime. Exception Handling  Exception Handling is a mechanism to handle runtime errors.  Normal flow of the application can be maintained.  It is an object which is thrown at runtime.  Exception handling done with the exception object.
  • 3.
    Types of Errors Thereare three categories of errors:  Syntax errors - arise because the rules of the language have not been followed. They are detected by the compiler.  Runtime errors – occur while the program is running if the environment detects an operation that is impossible to carry out.  Logic errors – occur when a program doesn’t perform the way it was intended to.
  • 4.
    Types of Exception •There are mainly two types of exceptions: • Checked • Unchecked – E.g. error • The sun microsystem says there are three types of exceptions: • Checked Exception – are checked at compile-time. • Unchecked Exception – are not checked at compile-time rather they are checked at runtime. • Error
  • 5.
    Checked Exception • Classesthat extends Throwable class RuntimeException and Error are known as checked exceptions. Checked Exception means that compiler forces the programmer to check and deal with the exceptions. e.g. IOException, SQLException etc. Unchecked Exception • Classes that extends RuntimeException, Error and their subclasses are known as unchecked exceptions e.g. ArithmeticException, NullPointerException etc. Error • Error is irrecoverable should not try to catch. e.g. OutOfMemoryError, VirtualMachineError etc.
  • 6.
  • 7.
    System Errors Object Throwable Exception ClassNotFoundException IOException AWTException RuntimeException ArithmeticException NullPointerException IndexOutOfBoundException IllegalArgumentException Severalmore classes Several more classes Error LinkageError VirtualMachineError AWTError Several more classes System errors are thrown by JVM and represented in the Error class. The Error class describes internal system errors. Such errors rarely occur.
  • 8.
    Exceptions Object Throwable Exception ClassNotFoundException IOException AWTException RuntimeException ArithmeticException NullPointerException IndexOutOfBoundException IllegalArgumentException Several more classes Severalmore classes Error LinkageError VirtualMachineError AWTError Several more classes Exception describes errors caused by your program and external circumstances. These errors can caught and handled by your program.
  • 9.
    Runtime Exceptions Object Throwable Exception ClassNotFoundException IOException AWTException RuntimeException ArithmeticException NullPointerException IndexOutOfBoundException IllegalArgumentException Severalmore classes Several more classes Error LinkageError VirtualMachineError AWTError Several more classes RuntimeException is caused by programming errors, such as bad casting, numeric errors etc.
  • 10.
    Exception Handling Terms •try – used to enclose a segment of code that may produce a exception. • catch – placed directly after the try block to handle one or more exception types. • Throw – to generate an exception or to describe an instance of an exception. • finally – optional statement used after a try-catch block to run a segment of code regardless if exception is generated.
  • 11.
    Exceptions - Syntax try{ //codewhich might throw an exception } catch(ExceptionClass object1){ //code to handle an exception } catch(ExceptionClass object2){ //code to handle an exception } finally{ //ALWAYS EXCEUTED WHETHER AN EXCETPTION WAS THROWN OR NOT }
  • 12.
    Class A{ public staticvoid main(String args[]){ int data=50/0; System.out.println(“Rest of the code….”); } } Output: Exception in thread main java.lang.ArithemeticException:/by zero Rest of the code is not executed (rest of the code…) statement is not printed. Example 1.
  • 13.
     Java VirtualMachine (JVM) first checks whether the exception is handled or not.  If exception is not handled, JVM provides a default exception handler that performs the following tasks:  Prints out exception description.  Prints the stack trace (Hierarchy of methods where the exception occurred).  Cause the program to terminate.  If exception is handled by the application programmer, normal flow of the application is maintained i.e. rest of the code is executed.
  • 14.
    Example 2. Class A{ Publicstatic void main(String args[]){ try{ int data=50/0; }catch(ArithmeticException e){ System.out.println(e); }System.out.println(“rest of the code…”); } } Output: Exception in thread main java.lang.ArithmeticException:/by zero rest of the code….
  • 15.
    Multiple catch block: •If more than one exception can occur, then we use multiple catch blocks. • When an exception is thrown, each catch statements is inspected in order, and the first one whose type matches that of the exception is executed. • After one catch statement executes, the other are bypassed
  • 16.
    Multiple Catch Exceptions- Syntax Try{ //code which might throw an exception } Catch(ExceptionClass object1){ //code to handle an exception } Catch(ExceptionClass object2){ //code to handle an exception }
  • 17.
    Nested try Statements •A try statement can be inside the block of another try. • Each time a try statement is entered, the context of that exception is pushed on the stack. • If an inner try statement does not have a catch, then the next try statement’s catch handlers are inspected for a match. • If a method call within a try block has try block within it, then it is still nested try.
  • 18.
    Nested try block Try{ statement1; statement 2; try{ statement 1; statement 2; }catch(Exception e){…..} }catch(Exception e){……}
  • 19.
    Example 3. Class A{ publicstatic void main(String args[]){ try{ try{ System.out.println(“going to divide”); int b=39/0; }catch(ArithmeticException e){ System.out.println(e); }try{ int a[]=new int[5]; a[5]=4; }catch(ArrayIndexOutOfBoundException e){ System.out.println(e); } System.out.println(“other statement”); }catch(Exception e){ System.out.println(“handled”); } System.out.println(“normal flow…”); } }
  • 20.
    Finally block  Finallyblock is a block that is always executed.  To perform some important tasks such as closing connection, stream etc.  Used to put “cleanup” code such as closing a file, closing connection etc.  Finally creates a block of code that will be executed after a try/catch block has completed.  Finally block will be executed whether or not an exception is thrown.  Each try clause requires at least one catch or finally clause.  Note: Before terminating the program, JVM executes finally clock (if any).  Note: finally must be followed by try or catch block.
  • 21.
  • 22.
    Example 4. Class A{ Publicstatic void main(String args[]){ try{ int data=25/0; System.out.println(“data”); }catch(ArithmeticException e){ System.out.println(e); }finally{ System.out.println(“rest of the code…”); } }
  • 23.
    Throw keyword • Throwkeyword is a keyword used to explicitly throw an exception / custom exception. throw new ExceptionName(“Error Message”); • Throw either checked or unchecked exception. throw new ThrowbleInstance • ThrowableInstance must be an object of type Throwable / subclass Throwable • There are two ways to obtain a Throwable objects: • Using a parameter into a catch clause. • Creating one with the new operator.
  • 24.
    Example 5. public classbank{ public static void main(String args[]){ int balance = 100, withdraw = 1000; if(balance<withdraw){ //ArithmeticException e = new ArithmeticException(No money please”); //throw r; //throw new ArithmeticException(“No Money”); }else{ System.out.println(“Draw & enjoy Sir/Mam, Best wishes of the day”); } } }
  • 25.
    Example 6. Import java.io.*; Publicclass Example{ public static void main(String args[]) throws IOException{ DataInputStream dis = new DataInputStream(System.in); int x = Integer.parseInt(dis.readLine()); if(x<0){ throw new illegalArgumentException(); throw new illegalArgumentException(“You have entered no”+””+ x +””+”which is less than 0”); }else{ System.out.println(“The no is “+x); } } }
  • 26.
    throws • If amethod is capable of causing an exception that it does not handle, it must specify this behaviour so that callers of the method can guard themselves against that exception. Type method-name (parameter-list) throws exception-list{ //body of method } • It is not applicable for Error or RuntimeException, or any of their subclasses.
  • 27.
    Error: beyond yourcontrol e.g. you are unable to do anything. E.g. VirtualMachineError or StackOverFlowError. Throw keyword • Throw is used to explicitly throw an exception. • Checked exception can not be propagated without throws. • Throw is followed by an instance. • Throw is used within the method. • You cannot throw multiple exception. Throws keyword • Throws is used to declare an exception. • Checked exception can be propagated with throws. • Throws is followed by class. • Throws is used with the method signature. • You can declare multiple exception e.g. public void method() throws IOException, SQLException. Unchecked Exception: under your control so correct your code.
  • 28.
    Create Our OwnException Class NumberRangeException extends Exception{ String msg; NumberRangeException(){ msg = new String(“Enter a number between 20 and 100”); } }
  • 29.
    Public class My_Exception{ publicstatic void main(String args[]){ try{ int x = 10; if(x < 20 || x > 100) throw new NumberRangeException(); }catch(NumberRangeException e){ System.out.println(e); } } }
  • 30.
    Thank You… All ContentWritten By Neha Kumari