• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

SoftwareTestingo - Interview Questions, Tutorial & Test Cases Template Examples

SoftwareTestingo - Interview Questions, Tutorial & Test Cases Template Examples

  • Home
  • Test Case Examples
  • Interview Questions
  • Interview Questions Asked
  • Java
  • Java Program
  • Selenium
  • Selenium Programs
  • Manual Testing
  • Difference
  • Tools
  • SQL
  • Contact Us
  • Search
SoftwareTestingo » Java » Java Tutorial » Throw and Throws in Java

Throw and Throws in Java

Last Updated on: August 16, 2020 By Softwaretestingo Editorial Board

What We Are Learn On This Post

  • Why Throw and Throws in Java?
  • Throw Keyword Syntax
  • Throw Keyword example
  • User-defined or Custom exception in java
  • Example of User-defined exception in Java
  • Throws in Java
  • Example of throws Keyword
  • Example 1: Exception propagation using throws keyword

In the post, we learn another new concept of exception handling that is how to create a custom exception and handle such types of exceptions using Throw and Throws.

Why Throw and Throws in Java?

As we know in Java programming language there are some predefined exception classes present like ArithmeticException, NullPointerException, ArrayIndexOutOfBounds exception, etc. These exceptions are trigger according to the different conditions like if you try to divide a number by zero then you ArithmeticException will trigger.

Apart from the predefined exception, we can define our exception with some set of rules and conditions, and also we can throw such type of exception by using the throw keyword. With the help of throw keyword, we can able to throw Predefined exceptions and custom exceptions also.

Throw Keyword Syntax

throw new exception_class("error message");

Throw Keyword example

/* In this program we are checking the Student age
 * if the student age<12 and weight <40 then our program
 * should return that the student is not eligible for registration.
 */
public class ThrowExample 
{
   static void checkEligibilty(int stuage, int stuweight)
   {
      if(stuage<12 && stuweight<40) 
      {
         throw new ArithmeticException(“Student is not eligible for registration”);
      }
      else 
      {
         System.out.println(“Student Entry is Valid!!”);
      }
   }
   public static void main(String args[])
   {
      System.out.println(“Welcome to the Registration process!!”);
      checkEligibilty(10, 39);
      System.out.println(“Have a nice day..”);
   }
}

User-defined or Custom exception in java

By using the Java programming language, we can create our custom exception class and also throw that exception using the Java keyword throw. Such types of exceptions are called custom or user-defined exceptions.

This core java exception tutorial series, we are going to learn how to create our custom exception and throw that exception in a particular condition.

Note:

  • The user-defined exception class must extend the Exception class
  • The exception we throwing using the throw keyword

Example of User-defined exception in Java

/* This is my Exception class, I have named it MyException
 * you can give any name, just remember that it should
 * extend Exception class
 */
class MyException extends Exception
{
   String str1;
   /* Constructor of a custom exception class
    * here I am copying the message that we are passing while
    * throwing the exception to a string and then displaying
    * that string along with the message.
    */
   MyException(String str2) 
   {
      str1=str2;
   }
   public String toString()
   {
      return ("MyException Occurred: "+str1) ;
   }
}
class Example1
{
   public static void main(String args[])
   {
      try
      {
         System.out.println("Starting of try block");
         // I'm throwing the custom exception using throw
         throw new MyException("This is My error Message");
      }
      catch(MyException exp)
      {
         System.out.println("Catch Block") ;
         System.out.println(exp) ;
      }
   }
}

Throws in Java

In our previous post, we have discussed checked and unchecked exceptions, where we have mentioned that if there is a checked exception, then you have to handle that otherwise, the program will not compile.

Similarly, the unchecked exception is not checked during the compile-time, and for the handle, the unchecked exception throws keyword is used. This throws keyword is used in the signature of the methods to indicates that the method might throw any of the listed types of exceptions. The caller method has to handle the exception using the try-catch block; otherwise, you will get a compile-time error.

public void myMethod() throws ArithmeticException, NullPointerException
{
   // Statements that might throw an exception
}
public static void main(String args[]) 
{
   try 
   {
      myMethod();
   }
   catch (ArithmeticException e) 
   {
      // Exception handling statements
   }
   catch (NullPointerException e) 
   {
      // Exception handling statements
   }
}

Example of throws Keyword

import java.io.*;
class ThrowExample 
{
   void myMethod(int num)throws IOException, ClassNotFoundException
   {
      if(num==1)
         throw new IOException("IOException Occurred");
      else
         throw new ClassNotFoundException("ClassNotFoundException");
   }
}

public class Example1
{
   public static void main(String args[])
   {
      try
      {
         ThrowExample obj=new ThrowExample();
         obj.myMethod(1);
      }catch(Exception ex)
      {
         System.out.println(ex);
      }
   }
}

Here we will see a few examples of throws keyword. To understand these programs, you should know throws keyword in java.

Example 1: Exception propagation using throws keyword

As you can see that we have an exception occurred in method1 which has been handled in the chain-calling method method3(). This example shows how the exception propagation works.

class Example1
{
   void method1() throws ArithmeticException
   {
      throw new ArithmeticException("Calculation error");
   }
   void method2() throws ArithmeticException
   {
      method1();
   }
   void method3()
   {
      try{
         method2();
      }
      catch(ArithmeticException e)
      {
         System.out.println("ArithmeticException handled");
      }
   }
   public static void main(String args[])
   {
      Example1 obj=new Example1();
      obj.method3();
      System.out.println("End Of Program");
   }
}

Output:

ArithmeticException handled
End Of Program

Example 2: When you don’t handle the exception and instead declare it at all the places

The ideal way to use throws is by declaring the exceptions in the method signature and handle the exceptions using try-catch in the calling method. Let us see what happens when we declare the exception at both the places, in method signature as well as in calling method.

class ExceptionExample
{
   void method()throws ArithmeticException
   {
      throw new ArithmeticException("ArithmeticException Occurred");
   }
}
class Example1
{
   public static void main(String args[])throws ArithmeticException
   {
      ExceptionExample obj=new ExceptionExample();
      obj.method();
      System.out.println("End Of Program");
   }
}

How to Handle Exception By Manually using throw Keyword In Java?

package com.softwaretestingblog.programs;
public class HandleExceptionManually {
   public static void main(String[] args) {
      // TODO Auto-generated method stub
      try
      {
         int i=9;
         @SuppressWarnings("unused")
         int z=i/0;
         //throw new Exception();
         throw new ArithmeticException();
      }
      catch(ArithmeticException e)//Subclass Always in Top
      {
         System.out.println(e.getMessage());
         System.out.println("Arithmatic Exception ");
      }
      catch(Exception e) // Super Class Always Down
      {
         System.out.println(e.getMessage());
         System.out.println("Arithmatic Exception ");
      }
   }
}

Output:

/ by zero
Arithmatic Exception

Ref: article

    Filed Under: Java Tutorial

    Reader Interactions

    Leave a Reply Cancel reply

    Your email address will not be published. Required fields are marked *

    Primary Sidebar

    Join SoftwareTestingo Telegram Group

    Categories

    Copyright © 2023 SoftwareTestingo.com ~ Contact Us ~ Sitemap ~ Privacy Policy ~ Testing Careers