User-defined Custom Exception in Java

Exceptions are runtime-errors that terminate a program abnormally. These are generally events that terminate the ongoing process. All Exceptions are child classes of the Throwable superclass.
Exceptions are of two types: IOException and Runtime Exception. Exceptions can also be divided into Checked and Unchecked Exceptions. Since this article comprises only User-Defined Exceptions, so the majority of the article will be based on User-Defined Exception only.

What is a User-Defined Exception?

user-defined exception is a custom, user-made exception created by the user in order to interrupt or terminate a process in his/her own program whenever a situation arises. A user-defined exception is creating our own Exception class and throwing that exception whenever required in the program.

Why do we need a User-Defined Exception?

Sometimes in your program, we need to terminate or interrupt a process in order to maintain the consistency of our program and also to ensure the smooth running of the module. These interrupts are not always a part of the default interrupts in the system. So thus we require to build our own exception classes. For example, in a banking system, if a person withdraws money from his/her account and the money withdrawal is more than the money present in the account. Then the transaction should immediately be stopped or terminated. Such a case is not present in the Java Libraries, and hence, they need to be manually coded. In such cases, we need a User-Defined Exception.

Steps to create a user-defined exception in Java

  1. Extend the Exception class.
  2. Override toString( ) method.
  3. Throw the exception.

Down below, is a code to implement a user-defined exception.


public class Ex extends Exception{
  public String toString(){
    return "Insufficient Balance!";

class Ex1{
  int with, bal;
  public void bank(int with, int bal){
        throw new Ex();
      bal = bal - with;
      System.out.println("New bal is "+bal);
    catch(Ex e){

class Test{
  public static void main(String args[]){
    int w=10000,b=1000;
    Ex1 ex = new Ex1();, b);

The code here simply returns “insufficient balance” if the withdrawn amount is greater than the account balance. In line#1 a class named Ex inherits Exception class using extends keyword. In line#2, toString( ) method is overridden to return “insufficient balance”. In class Ex1, in line#12 the user-defined exception class is thrown if the withdrawn amount is greater than the balance.


insufficient balance

User-Defined Exceptions are one of the very important concepts of Java. This concept has been used in almost every bigger project done in Java.

Also, Read: An Object Oriented Approach of using Math.addExact( ) method in Java

Leave a Reply

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