Creating user defined exceptions

Though Java provides an extensive set of in-built exceptions, there are cases in which we may need to define our own exceptions in order to handle the various application specific errors that we might encounter.

also read:

While defining an user defined exception, we need to take care of the following aspects:

  • The user defined exception class should extend from Exception class.
  • The toString() method should be overridden in the user defined exception class in order to display meaningful information about the exception.

Let us see a simple example to learn how to define and make use of user defined exceptions.

public class NegativeAgeException extends Exception {

    private int age;

    public NegativeAgeException(int age){
        this.age = age;

    public String toString(){
        return "Age cannot be negative" + " " +age ;

public class CustomExceptionTest {

    public static void main(String[] args) throws Exception{

        int age = getAge();

        if (age < 0){
            throw new NegativeAgeException(age);
            System.out.println("Age entered is " + age);

    static int getAge(){
        return -10;

In the CustomExceptionTest class, the age is expected to be a positive number. It would throw the user defined exception NegativeAgeException if the age is assigned a negative number.

At runtime, we get the following exception since the age is a negative number.

Exception in thread "main" Age cannot be negative -10
	at tips.basics.exception.CustomExceptionTest.main(



About Krishna Srinivasan

He is Founder and Chief Editor of JavaBeat. He has more than 8+ years of experience on developing Web applications. He writes about Spring, DOJO, JSF, Hibernate and many other emerging technologies in this blog.

  • Chandan

    Hello sir,
    can we automatically throw the user defined exception or it is compulsory to check the input and then throw it using conditional blocks?

    • Ravi

      you can give ur own message throw new Exception(“ACTUAL RESPONSE CODE DOES NOT MATCH WITH THE EXPECTED CODE “)

  • Neerav

    hello Sir is it possible to use 2 exception in same program.

  • bunny

    excellent explain

  • Devendra


  • Java Training In Chennai

    in the user defined exceptions, the derived classes will not have any
    statements in their body of the constructor. Instead, simply pass the
    constructor parameters as arguments to the Exception class constructor using super keyword. Therefore, the
    Exception class constructor handles the entire process.