Customized Exception
Based on our programming requirement some times we have to create our own exception, which are nothing but “Customized Exception”.
E.g
TooYoungException.
TooOldException.
InSufficiantFundsTransfer.
class TooYoungException extends RuntimeException { TooYoungException(String s) { super(s); } } class TooOldException extends RuntimeException { TooOldException(String s) { super(s); } } class CustomExceptionDemo { public static void main(String arg[]) { int age = Integer.parseInt(arg[0]); if(age > 60) { throw new TooOldException("Younger age is already over"); } else if(age < 18) throw new TooYoungException("Please wait same more time"); } System.out.println("Thanks for register"); } }
Note
It is recommended to define customized exceptions as unchecked. i.e our custom exceptions class should extends R.E either directly or indirectly.
Top 10 Exceptions
All Exceptions are divided into two categories
JVM Exceptions
Raised automatically by the JVM when ever a particular condition occurs.
E.g
ArithmeticException, NullPointerException.
ProgramaticExceptions
These are raised programmatically because of programmers code or API’s developers Code.
E.g
IllegalArgumentException, NumberFormatException.
1. NullPointerException
It is the direct child class of RuntimeException and it is unchecked. Thrown automatically by the JVM when ever we are performing any operation on null.
String s = null System.out.println(s.length()); -> NullPointerException2. StackOverFlowError
It is the child class of Error and it is unchecked. Raised automatically by the JVM when ever we are performing recursive method invocation.
class Test { public static void m1() { m1(); } public static void main(String arg[]) { m1(); } }3. ArrayIndexOutOfBoundsException
It is the child class of RuntimeException and it is unchecked thrown automatically by the JVM when ever we are accessing an array element with invalid int index.(Out of range index)
int [] a = {10, 20, 30}; System.out.println(a[0]); System.out.println(a[20]); -> ArrayIndexOutOfBoundsException.4. ClassCastException
It is the child class of RuntimeException and it is unchecked. Thrown automatically by the JVM when ever we are trying to typecast parent class object to the child type.
String s = "raju"; Object o = (Object)s // Fine Object o = new Object(); String s = (String)o; // Error R.E: ClassCastException.5. NoClassDefFoundError
It is the child class of Error and it is unchecked. Thrown automatically by the JVM if the required .class file is not available.
E.g
java Ashok
If Ashok.class file is not available we will get NoClassDefFoundError.
6. ExceptionInInitializerError
It is child class of Error and it is unchecked. Raised automatically by the JVM when ever an Exception occur during initialization of static variables or execution of static blocks.
E.g
class Test { static int i = 10/0; }
class Test { static { String s = null; System.out.println(s.length()); } }
7. IllegalArgumentException
It is the child class of RuntimeException and it is unchecked thrown explicitly by the programmer or API developer when ever we are invoking a method with inappropriate or
invalid argument.
E.g
The valid range of Thread priority is 1 – 10 , if we are trying to invoke setpriority method with 100 as argument we will get IllegalArgumentException.
public void setPriority(int i) { if (i>10 || i<11) { throw new IllegalArgumentException(); } }8. NumberFormatException
It is the child class of Illegal Argument and it is unchecked. Thrown programmatically when ever we are attempting to convert String to Number type but the String is not formatted properly
E.g
String s = 10; int i = Integer.parseInt(s); // Fine String s = "ten"; int i = Integer.parseInt(s); -> NumberFormatException9. IlleaglStateExcepiton
It is the child class of RuntimeException and it is unchecked. Thrown programmatically to indicate that a method has invoked at an inappropriate time.
E.g
After invalidating a session object we are not allowed to call any method on that object other wise IllegalStateException.
After comiting the response we are not allowed to redirect or forward otherwise IlleagalStateException
After starting a thread we are not allowed to start the same thread once again otherwise IlleagalStateException.
MyThread t = new MyThread(); t.start(); t.start(); -> IllegalThreadStateException10. AssertionError
It is the child class of Error and it is unchecked thrown programmatically to indicate Assertion fails.
E.g
Assert(false); -> AssertionError
Next Tutorial Assertions Tutorial
Previous Tutorial Exception Handling Tutorial Part 2
No comments:
Post a Comment