Monday, 29 April 2019

Difference between throw and throws in java

Throw vs Throws in java

In this guide, we will discuss the difference between throw and throws keywords. 

1. Throws clause is used to declare an exception, which means it works similar to the try-catch block. On the other hand throw keyword is used to throw an exception explicitly.
2. If we see syntax wise than throw is followed by an instance of Exception class and throws is followed by exception class names.
For example:
throw new ArithmeticException("Arithmetic Exception");
and
throws ArithmeticException;
3. Throw keyword is used in the method body to throw an exception, while throws is used in method signature to declare the exceptions that can occur in the statements present in the method.
For example:
Throw:
...
void myMethod() {
   try {
      //throwing arithmetic exception using throw
      throw new ArithmeticException("Something went wrong!!");
   } 
   catch (Exception exp) {
      System.out.println("Error: "+exp.getMessage());
   }
}
...
Throws:
...
//Declaring arithmetic exception using throws
void sample() throws ArithmeticException{
   //Statements
}
...
4. You can throw one exception at a time but you can handle multiple exceptions by declaring them using throws keyword.
For example:
Throw:
void myMethod() {
   //Throwing single exception using throw
   throw new ArithmeticException("An integer should not be divided by zero!!");
}
..
Throws:
//Declaring multiple exceptions using throws
void myMethod() throws ArithmeticException, NullPointerException{
   //Statements where exception might occur
}
These were the main differences between throw and throws in Java. Lets see complete examples of throw and throws keywords.

Throw Example

To understand this example you should know what is throw keyword and how it works
public class Example1{  
   void checkAge(int age){  
 if(age<18)  
    throw new ArithmeticException("Not Eligible for voting");  
 else  
    System.out.println("Eligible for voting");  
   }  
   public static void main(String args[]){  
 Example1 obj = new Example1();
 obj.checkAge(13);  
 System.out.println("End Of Program");  
   }  
}
Output:
Exception in thread "main" java.lang.ArithmeticException: 
Not Eligible for voting
at Example1.checkAge(Example1.java:4)
at Example1.main(Example1.java:10)

Throws Example

To understand this example you should know what is throws clause and how it is used in method declaration for exception handling.
public class Example1{  
   int division(int a, int b) throws ArithmeticException{  
 int t = a/b;
 return t;
   }  
   public static void main(String args[]){  
 Example1 obj = new Example1();
 try{
    System.out.println(obj.division(15,0));  
 }
 catch(ArithmeticException e){
    System.out.println("You shouldn't divide number by zero");
 }
   }  
}
Output:
You shouldn't divide number by zero

No comments:

Post a Comment

Getting started with Elasticsearch and Node.js

  In this article we're going to look at using Node to connect to an Elasticsearch deployment, index some documents and perform a simple...