Introduction to Throw Keyword in Java
This Throw keyword is prominently used in the concept of Exception Handling. As the name already suggests, the throw keyword is all about throwing out an exception from the program to the compiler. Briefing out on exception, it is a type of error that a compiler pops out from the program in case of any discrepancy occurred during the run time of the code. By using this throw keyword, we can define our exception by interpreting any cause of errors during the program’s run time.
Let us see more details of it below:
Syntax
Syntax of throw in java is like below:
throw exception_type ;
or
throw instance;
Working of Throw Keyword in Java
Here, we can check how the keyword is actually used and understand how the flow works through an example.
import java.util.Scanner;
public class Main
{
public static void main(String[] args) {
int c;
Scanner sc = new Scanner(System.in);
System.out.println("Enter value of A: ");
int a = sc.nextInt();
//Scanner b = new Scanner(System.in);
System.out.println("Enter value of B: ");
int b = sc.nextInt();
try {
c= a/b;
if(b==0)
{
throw new ArithmeticException();
}
System.out.println("Value of C is: " +c);
}
catch(ArithmeticException e) {
System.out.println("Caught this here");
}
finally {
}
System.out.println("Finally block is here");
}
}
Let’s deal with this with a classic and simple example of division by zero.
Analyzing the code below:
- Firstly, we imported the Scanner module to take the user input values.
- We read two numbers, namely, ‘A’ and ‘B’, which are given as input to the user.
- We declared a variable ‘C’ to store the value of the quotient after the division of number ‘A’ by ‘B’.
- As the user can randomly give the numbers, we can think of a situation where a user can give the divisor as zero.
- Accepting that scenario, we write our division code in a try block.
- And writing if a condition that in case if ‘B’ value has zero, then we are throwing an Exception.
- Try would always be followed by a catch block.
- So, here we are mentioning the exception that we defined using a new command by keyword throw.
- The same exception is there caught and, we just printed out a statement below to make a clear understanding in attaining the flow of the try, throw, catch and finally.
- And then finally, we are declaring our finally block. As already known, the statements in this block are definitely going to execute.
Let’s check the output below.
Output 1: If b value is not a zero.
We can clearly see there is no try, throw and catch blocks executed since the ‘B’ value is non-zero. And finally, the block got executed irrespective of the exception creation.
Output 2: If the b value is zero.
The highlighted part makes sure that the exception is thrown and caught by the catch block successfully.
So, let’s see an example below.
Example:
Let us see a way how we can throw multiple exceptions in a single program.
public class Main
{
public static void main(String[] args) {
String sun[] = {"chocolate", "honey", "sugar", "sweet", "bitter"};
String h = null;
try {
for (int i=0; i<=7; i++)
{
if(i > sun.length)
{
throw new ArrayIndexOutOfBoundsException();
}
System.out.println(sun[i]);
}
}
catch(ArrayIndexOutOfBoundsException ae)
{
System.out.println("Inside array index out of bounds exception catch block");
}
try{
sun[0]=h;
if (sun[0] == null)
{
throw new NullPointerException();
}
System.out.println("Value of sun[0] is: " +sun[0]);
}
catch(NullPointerException f)
{
System.out.println("Caught Null point exception");
}
finally {
System.out.println("executing finally");
}
}
}
Above, we have used two different types of exceptions and used throw keyword to interpret the program. Array index out of bound and Null pointer exception is what we used here in a single program.
Output:
Importance of Throw
This throw keyword would help us act as a bridge between try and catch blocks. It will help transfer the control of the program from the try block to the catch block.
Let me show you an example of how a program works with and without the use of the throw keyword.
public class Main
{
public static void main(String[] args) {
try {
int a = Integer.parseInt ("Happy") ;
System.out.println("Will this get printed?");
} catch(NumberFormatException e) {
System.out.println("Number format exception of catch block");
}
System.out.println("Priting after catch block");
}
}
We have written code without the throw keyword. But we used the code to try and catch block, which is in the fact going to handle the exception. So, do you know the output of the above?
Expected right? So, it executed the code, found an exception and the exception is caught.
Now, how does the code work when we insert our throw statement? Let’s see below.
public class Main
{
public static void main(String[] args) {
try {
int a = Integer.parseInt ("Happy") ;
throw new NumberFormatException();
System.out.println("Will this get printed?");
} catch(NumberFormatException e) {
System.out.println("Number format exception of catch block");
}
System.out.println("Priting after catch block");
}
}
Only the highlighted part is the change between the above two codes.
Output:
Yes, we have a compilation error as the print statement after the throw keyword is unreachable. We hope that you understood what exactly is meant by “transferring the control from try to catch block” through this example.
As an exercise, try removing the print statement after the throw the keyword, check how the program reacts.
Conclusion
So, this is how the throw command has come into the picture at the time of exception handling. And do notice there is a good difference between the THROW and THROWS keyword. Both are used with the concept of exceptions. We have already known the concept, how and where actually we can use the “THROW” keyword. Just practice and try using it in different ways. Keep learning.
Recommended Articles
This is a guide to Throw Keyword in Java. Here we discuss the Introduction, Working in Java and the Importance of Throw Keyword in Java. You can also go through our other suggested articles to learn more –
41 Online Courses | 29 Hands-on Projects | 305+ Hours | Verifiable Certificate of Completion
4.8
View Course
Related Courses