Defining your own Exception class in JAVA
Now you know how to write exception handlers for those exception objects that are thrown by the runtime system, and thrown by a method in the standard class library.
It is also possible for you to define your own exception classes and to cause objects of those classes to be thrown whenever an exception occur. In this case, you get to decide just what constitutes an exceptional condition. For example, suppose you could write a data-processing application that processes integer data obtained via a TCP/IP link from another computer. If the specification for the program indicates that the integer value 100 should never be received, then you could use an occurrence of the integer value 100 to cause an exception object of your own design to be thrown.
Exception Types in Java
Mainly Exceptions are of two types; checked and unchecked exceptions:
- Error and Runtime Exception are unchecked, these exceptions not handled or check by compiler that you handle them explicitly
- All other Exception are checked that is compiler enforce or check that you can handle them explicitly
An error is an abnormal situation of the JVM (Java Virtual Machine)
- Running out of memory
- Infinite recursion
- Inability to link
Creating Custom Exceptions in Java
- Use the Exception class in the API.
- Create a Custom Exception class if the predefined class is not sufficient.
- Declare a custom exception classes by extending the Exception class or a subclass of Exception.
If you decide to define your own exception class. it must be a subclass of a Throwable class. You must decide which class you will extend.
The two existing subclasses of Throwable are Exception and Error.
Example - Making your own Exception class by using constructor
- class Myexception extends Exception {
- public Myexception(int i) {
- System.out.println("you " + i + " entered It exceeding the limit");
- }
-
- }
-
- public class ExceptionTest {
- public void show(int i) throws Myexception {
- if (i > 100)
- throw new Myexception(i);
- else
- System.out.println(+i + " is less then 100 it is ok");
- }
-
- public static void main(String[] args) {
- int i = Integer.parseInt(args[0]);
- int j = Integer.parseInt(args[1]);
- ExceptionTest t = new ExceptionTest();
- try {
- t.show(i);
- t.show(j);
- } catch (Throwable e) {
- System.out.println("catched exception is" + e);
- }
- }
- }
OUTPUT
Example - Making your own Exception class by using super keyword.
- class MyException extends Exception {
- MyException(String s) {
- super(s);
- }
- public String toString() {
- return (" " + getMessage());
- }
- }
- class ThrowClass {
- int age;
- ThrowClass(int age) throws MyException {
- this.age = age;
- }
- void getAge(int age) throws MyException {
- if (age < 18) {
- throw new MyException("Invalid Age");
- } else {
- this.age = age;
- }
- }
- }
- class TestException {
-
- public static void main(String[] args) {
- int a = Integer.parseInt(args[0]);
- try {
- ThrowClass t = new ThrowClass(a);
- t.getAge(a);
- System.out.println(t.age);
- } catch (MyException me) {
- System.out.println(me);
- }
- }
- }
OUTPUT
Resources