Java try catch block
Java try-catch block is a handler which is used to handle the exception in java programs. In java exception handling try and catch is a block which maintains the normal flow of the program.
It most important topic in exception handling concept for interview. And try and catch block is mostly used in every program when we connect to the database.
Java try block must be used within the method.
Java try block must be followed by catch block or finally block or both blocks.
Syntax try block with catch block :
try
{
//Statements that might throw an exception
}
catch(Exception_class_Name e)
{}
Syntax try block with finally block :
try
{
//Statements that might throw an exception
}
finally
{}
It most important topic in exception handling concept for interview. And try and catch block is mostly used in every program when we connect to the database.
try Block in Java
In java try block we write all the statements or code that might throw an exception. In other words, java try block contains problematic statements.Java try block must be used within the method.
Java try block must be followed by catch block or finally block or both blocks.
Syntax try block with catch block :
try
{
//Statements that might throw an exception
}
catch(Exception_class_Name e)
{}
Syntax try block with finally block :
try
{
//Statements that might throw an exception
}
finally
{}
catch Block in Java
Java catch block must be associated with try block. Java catch block is used to handle the exception. Java catch block must be used after try block only. You can use single or multiple catch block with single try block in java.
Syntax catch block :
try
{
//Statements that might throw an exception
}
catch(Exception_class_Name1 e)
{}
catch(Exception_class_Name2 ee)
{}
Program Without ExceptionHandling(without try and catch)
In the below example we are not going to use try and catch block. Let's see what happens.
class WithoutTryCatchExample
{
public static void main(String args[])
{
int a = 5/0;//Exception occurs
System.out.println("this will not print");
}
}
output : Exception in thread "main" java.lang.ArithmeticException :/ by zero
output : Exception in thread "main" java.lang.ArithmeticException :/ by zero
In the above example, the statement "this will not print" will not execute because an exception occurs before this statements. If the exception occurs at any statement, rest of the statement will not execute.
Program with ExceptionHandling(with try and catch)
Solution of the above example is here. In this example, we are going to use try and catch handler to try to catch the exception and execute the statement.
class TryAndCatchExample
{
public static void main(String args[])
{
try
{
int a = 10/0;//ArithmeticException occurs
}
catch(ArithmeticException e)
{
System.out.println(e);
System.out.println("this will print");
}
}
}
output: java.lang.ArithmeticException: / by zero
this will print
class MultiCatchBlock
}
}
}
output: java.lang.ArithmeticException: / by zero
this will print
Internal working of try-catch block
First JVM checks whether the exception is handled or not, if an exception is not handled then JVM provide default handler that performs some task. These are
- Print exception description
- Print the stack trace
- Causes the program to terminate
If the exception is handled by the programmer, the normal flow of the application is maintained and all the statement will execute normally.
Java Multi catch block
As we know, we can use multiple catch block with a single try block. Java multi-catch block is used to perform the different-different task at the occurrence of the different-different exception.
class MultiCatchBlock
{
public static void main(String args[])
{
try
{
int b[] = new int[5];
b[5] = 20/0;
}
catch(ArithmeticException ae)
{
System.out.println("Task First");
}
catch(ArrayIndexOutOfBoundsException a)
{
System.out.println("Task Second");
}
catch(Exception e)
{
System.out.println("Big Task");
}
}
}
output : Task First
output : Task First
For example 2 :
class MultiCatchBlock
{
public static void main(String args[])
{
try
{
int b[] = new int[5];
b[5] = 20/0;
}
catch(Exception e)
{
System.out.println("Big Task");
}
catch(ArithmeticException ae)
{
System.out.println("Task First");
}
catch(ArrayIndexOutOfBoundsException a)
{
System.out.println("Task Second");
}
}
}
output: compile time error
output: compile time error
Some Points about catch block
- Only one exception occurred at a time and at a time only one block is executed.
- All catch block in java must be ordered from most specific to most general i.e catch for ArithmeticException comes before catch for Exception.
Thanks for sharing this informative blog java training in OMR
ReplyDeleteThanks buddy, Before that I am not able to implement try catch block in java programs. but after that blog i am able to implement try catch in any java programs.....
ReplyDelete