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){
}
try{
//block of statements
}catch(Exception handler class){
}
try{ //block of statements }catch(Exception handler class){ }
Syntax of try block with finally block
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
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
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.
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
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.
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
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.