How to Create an Exception Class in Java
Java has many built-in exception classes, such as NullPointerException
and IllegalArgumentException
. At times however, you might want to create your own exception class. For example, as opposed to throwing IllegalArgumentException
when a 0 is detected as a divisor during a division operation, you might wish to throw a DivideByZeroException
. This exception class does not exist in the Java core API, but you can create one yourself. The seven steps below will show you how to create an exception class in Java.
- First, you will create the custom exception class. Open your text editor and type in the following Java statements:
The class extends theException
class that is defined in the Java core API (in the package isjava.lang
). When extendingException
you are defining a "checked" exception, i.e., an exception that must be caught or thrown. A constructor is provided that passes the message argument to the super classException
. TheException
class supports amessage
property. - Save your file as DivideByZeroException.java.
- Open a command prompt and navigate to the directory containing your Java program. Then type in the command to compile the source and hit Enter.
- Now you will create the program to test your new exception class. Open your text editor and type in the following Java statements:
Notice that thedivideInt
method must provide athrow
clause because the method potentially throws theDivideByZeroException
. To create the exception object, the program uses thethrow
keyword followed by the instantiation of the exception object. At runtime, thethrow
clause will terminate execution of the method and pass the exception to the calling method. - Save your file as TestDivideByZeroException.java.
- Open a command prompt and navigate to the directory containing your Java program. Then type in the command to compile the source and hit Enter.
- Type in the command to run your program and hit Enter.
The first call to thedivideInt
method is successful. The second call, using a divisor of 0, causes theDivideByZeroException
to be thrown in thedivideInt
method. The message passed to the constructor is displayed in the output.