Monday 6 August 2012

Creating user defined exceptions in Java

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.


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.


class NoSufficientFundException extends Exception {
 int amt;

 public NoSufficientFundException(int amt) {
  this.amt = amt;
 }

 public String toString() {

  return "You can't withdraw the amt:" + amt;
 }
}

class Bank {

 void withdraw(int accno, int balance, int amt)
   throws NoSufficientFundException {

  if (balance - amt >= 500) {
   balance -= amt;
   System.out.println("Successful withdrawal.Balance:"
     + balance);
  } else {
   throw new NoSufficientFundException(amt);
  }
 }
}

public class TestUserDefinedException {

 public static void main(String[] args) {
  try {

   new Bank().withdraw(1222345, 1000, 1000);

  } catch (NoSufficientFundException e) {
   e.printStackTrace();
  }
 }
}


The output is:


You can't withdraw the amt:1000
at Bank.withdraw(TestUserDefinedException.java:24)
at TestUserDefinedException.main(TestUserDefinedException.java:34)

In the above example, the withdraw method throws the user defined exception NoSufficientFundException if the amount can't withdraw due to insufficient balance.

No comments:

Post a Comment