Java Exception Handling

What is Exception Handling?

  • Exception handling is a process to handle the execution when exception arises in the java code.
  • Exception is an abnormal condition that arises in a java code sequence at run-time.
  • All exception types are the subclasses of the predefined Throwable class.
  • Two branches in Throwable class: Exception (is also called RuntimeException) and Error.
  • Exception can be generated by Java run-time system or manually generated by java code.
  • Java exception handling is managed via five keywords: try, catch, throw, throws and finally.
  • Java code with raising Exception:
    class ExceptionTest {                                                           
     static int division() {                                                        
      int divider = 0;                                                              
      int result = 100/divider;                                                     
      return result;                                                                
     }                                                                              
     public static void main(String args[]) {                                       
      int val = ExceptionTest.division();                                           
      System.out.println(val);                                                      
     }                                                                              
    }  
    
    Java code raises ArithmeticException here.
    $ javac ExceptionTest.java
    $ java ExceptionTest
    Exception in thread "main" java.lang.ArithmeticException: / by zero
    	at ExceptionTest.division(ExceptionTest.java:4)
    	at ExceptionTest.main(ExceptionTest.java:8)
    

How to define try catch block in Java?

try block is used to monitor the java code and transfers execution to catch section if any exception raises.
catch block is used to execute alternate java codes if particular exception occurs.
finally block executes always at the end of try catch block's even exception is occurred or not. Mostly finally block is used for resource clean up codes.
try {
 //statements to monitor exception's
}
catch(ExceptionType1 exceptionObject) {
 //exception handler statements for ExceptionType1
}
catch(ExceptionType2 exceptionObject) {
 //exception handler statements for ExceptionType2
}
//...
finally {
 //Statements to be executed before try statements end
}
Example try catch:
class ExceptionHandlingTest {                                                   
 static int division() {                                                        
  int divider = 0;                                                              
  int result = 100/divider;                                                     
  return result;                                                                
 }                                                                              
 public static void main(String args[]) {                                       
  int val = 0;                                                                  
  try {                                                                         
    val = ExceptionTest.division();                                             
    System.out.println(val);                                                    
  } catch(ArithmeticException ex) {                                             
    System.out.println("Division by zero error is occurred.");                   
  }                                                                             
 }                                                                              
}  
Output:
$ javac ExceptionHandlingTest.java
$ java ExceptionHandlingTest
Division by zero error is occurred.

How to define try with Multiple catch and finally blocks?

when try block finds any exception, checks catch block in sequence and catch block that matched triggered exception will be executed.
finally block executes always at the end of try block even exception is occurred or not.
//Multiple catch with finally blocks
class MultipleCatchFinallyTest {                                                
 public static void main(String args[]) {                                       
  int val = 0;                                                                  
  try {                                                                         
    int d =0;                                                                   
    val = 100/d;                                                                
    int a[] = new int[2];                                                       
    a[3] = 100;                                                                 
    System.out.println(val);                                                    
  } catch(ArithmeticException ex) {                                             
    System.out.println("Division by zero error is occurred.");                   
  } catch(ArrayIndexOutOfBoundsException ex) {                                  
    System.out.println("Array index out of bound error is occurred.");           
  } finally {                                                                   
    System.out.println("After try and catch block!");                           
  }                                                                             
 }                                                                              
}  
Output:
Division by zero error is occurred.
After try and catch block!

How to define nested try with catch blocks?

try statement can be nested in java program.
try block can be placed inside the another try block.
Nested try example:
class NestedTryCatchTest {                                                      
 public static void main(String args[]) {                                       
  int val = 0;                                                                  
  try {                                                                         
    int d =0;                                                                   
    try {                                                                       
     val = 100/d;                                                               
    }  catch(ArithmeticException ex) {                                          
    System.out.println("Division by zero error is occurred.");                   
    }                                                                           
    int a[] = new int[2];                                                       
    a[3] = 100;                                                                 
    System.out.println(val);                                                    
  } catch(ArrayIndexOutOfBoundsException ex) {                                  
    System.out.println("Array index out of bound error is occurred.");           
  } finally {                                                                   
    System.out.println("After try and catch block!");                           
  }                                                                             
 }                                                                              
}  
Output:
$ javac NestedTryCatchTest.java 
$ java NestedTryCatchTest 
Division by zero error is occurred.
Array index out of bound error is occurred.
After try and catch block!

What is the use of throw statement?

throw statement is used to throw the exception explicitly.
class ThrowTest {                                                               
 static int division() {                                                        
  int divider = 0, result;                                                      
  try {                                                                         
   result = 100/divider;                                                        
  } catch(ArithmeticException ex) {                                             
    System.out.println("division method: Division by zero error.");             
    // rethrow the same exception to calling method                             
    throw ex;                                                                   
  }                                                                             
  return result;                                                                
 }                                                                              
 public static void main(String args[]) {                                       
  int val = 0;                                                                  
  try {                                                                         
    val = ThrowTest.division();                                                 
    System.out.println(val);                                                    
  } catch(ArithmeticException ex) {                                             
    System.out.println("Recaught: " + ex);                                      
  }                                                                             
 }                                                                              
}
Output:
$ javac ThrowTest.java 
$ java ThrowTest
division method: Division by zero error.
Recaught: java.lang.ArithmeticException: / by zero

What is the use of throws statement?

throws class is used to lists the types of exceptions that a method might throw.
type method-name(parameter-list) throws exception-list {
// method definition
}
throws example:
class ThrowsTest {                                                              
 static int division() throws ArithmeticException {                             
  int divider = 0, result;                                                      
  result = 100/divider;                                                         
  return result;                                                                
 }                                                                              
 public static void main(String args[]) {                                       
  int val = 0;                                                                  
  try {                                                                         
    val = ThrowTest.division();                                                 
    System.out.println(val);                                                    
  } catch(ArithmeticException ex) {                                             
    System.out.println("Exception: " + ex);                                     
  }                                                                             
 }                                                                              
}    
Output:
$ javac ThrowsTest.java 
$ java ThrowsTest
Exception: java.lang.ArithmeticException: / by zero

Java Examples

GCD and Rational Number Java Program

Java Queue Program using exception

Java Stack Program using exception

Addition of three integers java program

Biggest of three integers java program

Fibonacci numbers java program

Arithmetic Operations Menu java program

Second Smallest Element In Array Java Program

Transpose Of A Matrix Java Program

Java Program to Display triangle of stars (*)

Java Programming Prints Product Tables

Java Program to Display triangle of numbers

Java Program to Get Current Date

Java Program to Find Character Vowel or Consonent

Java Program to Compute HCF and LCM

Java Program to Sum the Command Line Integer Arguments

Java Programm to Multiply the Command Line Integer Arguments

Java Program to Find Multiplication of Command Line Floating Point Numeric Arguments

Java Program to Check String Contains or Not

Java Program to Get Grade Description using Switch

Java Program for CSV File Reader

Java Program to Find Character Frequency Count in String using for each

Java Program to Find Min from Integer Array by Passing Array to Method

Java Program Linear Search

Binary Search Java Program

Ternary Search Java Program

Java Program to Generate Range of Numbers

Java Program to Generate Range of Characters

Java Program to Compute Square Root Value

Java Program to Check Number is Positive or Negative

Java Program to Check Number is Odd or Even

Java Program to Compute Plot Area

Java Program to Convert Number of Days into Years

Java Program to Check a Year is Leap Year, Century Year or Not

Java Program to Check a Character is Digit, Letter or neither digit nor letter

Java Program to Check a Number is Palindrome or not

Java Program to Sum Two Matrix

Java Program to Compute Power

Java Program to Check Number is an Armstrong Number or not

Java Program for Temperature Unit Conversions

Java Program to Generate Random Numbers in Specified Range

Java Program to Compute Sum of Digits and Product of Digits

Java Program to Compute Reverse Number

Java Programming Computes Factorial Value

Java Programming Checks Prime Number or not

Java Program to Compute Harmonic Series

Java Program Generate Floyd's Triangle

Java Program to Reverse String

Java Program to Check Palindrome String or not

Java Program to Open Notepad

Java Program to Search String using RegEx Pattern

Java Program to Search Word in String

Java Program to Get System Environment Variables

Java Program to Get IP Address of Server Name

Java Program for Arrays Sorting and Reverse using sort method

Java Program for Bubble Sorting

Java Program for Selection Sorting

Java Program for Insertion Sorting

Java Program for Merge Sorting

Java Program for Quick Sorting

Java Program for Counting Sort

Java Program for Radix Sorting

Java Program for Sorting Array of Strings

Java Program for String Characters Sorting

Java Program to Sum First N Numbers

Java Program to Product First N Numbers

Java Program to get URL details

Java Program to get URL HTML Content

Java Program to get URL details

Java Program to get URL HTML Content

Privacy Policy  |  Copyrightcopyright symbol2020 - All Rights Reserved.  |  Contact us   |  Report website issues in Github   |  Facebook page   |  Google+ page

Email Facebook Google LinkedIn Twitter
^