Java allows programmers to create their own Exceptions. To create and exception, you should inherit from the exception closest to what you wish to create. Following is a generic example to show how to create and use a custom exception.

public class CustomException extends Exception
{
   String ex;
   public CustomException() {
       super();
       ex = "Something is empty";
   }

   public CustomException(String msg) {
       super(msg);
       ex = msg;
   }

   public String getError() {
       return ex;
   }
}

This exception class provides a no argument constructor which prints a default message, “Something is empty”. The second constructor returns the message in the throw statement of the calling method. getError() is a callable function that returns the Exception message.

public class TestCustomException
{
   public static void main(String[] args) {
       try {
           f();
       } catch (CustomException e) {
           System.out.println(e.getError());
       }

       try {
           g();
       } catch (CustomException e) {
           System.out.println(e.getError());
       }
   }

   public static void f() throws CustomException { 
       throw new CustomException();
   }

   public static void g() throws CustomException { 
       throw new CustomException("empty");
   }
}

output

Something is empty
empty

Method f() throws a CustomException without any argument, so the default value message “Something is empty” is returned. Method g() throws a CustomException with a String argument.