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
try{
//block of statements
}catch(Exception handler class){
}
Syntax of try block with finally block
try{
//block of statements
} finally {
}
Syntax of a try block with catch and finally block
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
try{
//block of statements
}catch(Exception handler class){
}
The problem without exception handling.
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
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.
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
java.lang.ArithmeticException: / by zero Remaining code after exception handling.