try and catch blocks in java

try block

try block is used to enclose the code that might throw an exception. It must be followed by either a catch or finally or both blocks.

 

Syntax of a try block with catch block

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
try{
//block of statements
}catch(Exception handler class){
}
try{ //block of statements }catch(Exception handler class){ }
try{

       //block of statements

}catch(Exception handler class){

}

 

Syntax of try block with finally block

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
try{
//block of statements
} finally {
}
try{ //block of statements } finally { }
try{

       //block of statements

} finally {

}

 

Syntax of a try block with catch and finally block

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
try{
//block of statements
}catch(Exception handler class){
}finally{
}
try{ //block of statements }catch(Exception handler class){ }finally{ }
try{

        //block of statements

}catch(Exception handler class){

}finally{

}

 

catch block

The catch block is used for the exception handler. It is used after the try block.

Syntax

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
try{
//block of statements
}catch(Exception handler class){
}
try{ //block of statements }catch(Exception handler class){ }
try{

       //block of statements

}catch(Exception handler class){

}

 

The problem without exception handling.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
class ArithmaticTest{
public void division(int num1, int num2){
//java.lang.ArithmeticException here
//and remaining code will not execute.
int result = num1/num2;
//this statement will not execute.
System.out.println("Division = " + result);
}
}
public class ExceptionHandlingExample1 {
public static void main(String args[]){
//creating ArithmaticTest object
ArithmaticTest obj = new ArithmaticTest();
//method call
obj.division(20, 0);
}
}
class ArithmaticTest{ public void division(int num1, int num2){ //java.lang.ArithmeticException here //and remaining code will not execute. int result = num1/num2; //this statement will not execute. System.out.println("Division = " + result); } } public class ExceptionHandlingExample1 { public static void main(String args[]){ //creating ArithmaticTest object ArithmaticTest obj = new ArithmaticTest(); //method call obj.division(20, 0); } }
class ArithmaticTest{

    public void division(int num1, int num2){
        //java.lang.ArithmeticException here 
                //and remaining code will not execute.
        int result = num1/num2;
        //this statement will not execute.
        System.out.println("Division = " + result);
    }
}

public class ExceptionHandlingExample1 {
    public static void main(String args[]){
        //creating ArithmaticTest object
        ArithmaticTest obj =  new ArithmaticTest();
        
        //method call
        obj.division(20, 0);
    }
}

 

Output

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Exception in thread "main" java.lang.ArithmeticException: / by zero at
com.w3schools.business.ArithmaticTest.division (ExceptionHandlingExample1.java:15)
at com.w3schools.business.ExceptionHandlingExample1.main (ExceptionHandlingExample1.java:27)
Exception in thread "main" java.lang.ArithmeticException: / by zero at com.w3schools.business.ArithmaticTest.division (ExceptionHandlingExample1.java:15) at com.w3schools.business.ExceptionHandlingExample1.main (ExceptionHandlingExample1.java:27)
Exception in thread "main" java.lang.ArithmeticException: / by zero at 
com.w3schools.business.ArithmaticTest.division (ExceptionHandlingExample1.java:15) 
at com.w3schools.business.ExceptionHandlingExample1.main (ExceptionHandlingExample1.java:27)

 

Solution of the above problem using exception handling.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
class ArithmaticTest{
public void division(int num1, int num2){
try{
//java.lang.ArithmeticException here.
System.out.println(num1/num2);
//catch ArithmeticException here.
}catch(ArithmeticException e){
//print exception.
System.out.println(e);
}
System.out.println("Remaining code after exception handling.");
}
}
public class ExceptionHandlingExample2 {
public static void main(String args[]){
//creating ArithmaticTest object
ArithmaticTest obj = new ArithmaticTest();
//method call
obj.division(20, 0);
}
}
class ArithmaticTest{ public void division(int num1, int num2){ try{ //java.lang.ArithmeticException here. System.out.println(num1/num2); //catch ArithmeticException here. }catch(ArithmeticException e){ //print exception. System.out.println(e); } System.out.println("Remaining code after exception handling."); } } public class ExceptionHandlingExample2 { public static void main(String args[]){ //creating ArithmaticTest object ArithmaticTest obj = new ArithmaticTest(); //method call obj.division(20, 0); } }
class ArithmaticTest{

    public void division(int num1, int num2){
        try{
            //java.lang.ArithmeticException here.
            System.out.println(num1/num2);
                //catch ArithmeticException here.
        }catch(ArithmeticException e){
            //print exception.
            System.out.println(e);
        }

      System.out.println("Remaining code after exception handling.");
    }
}

public class ExceptionHandlingExample2 {
    public static void main(String args[]){
        //creating ArithmaticTest object
        ArithmaticTest obj =  new ArithmaticTest();
        
        //method call
        obj.division(20, 0);
    }
}

Output

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
java.lang.ArithmeticException: / by zero
Remaining code after exception handling.
java.lang.ArithmeticException: / by zero Remaining code after exception handling.
java.lang.ArithmeticException: / by zero 
Remaining code after exception handling.