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.