A Java Exception is an abnormal condition that arises during the execution of a program and also called a run-time error. An exception in Java signals the unusual or catastrophic situations that can arise.
Examples of Java Exceptions are:
- Incorrect user input such as division by zero
- File that needs to be opened not found
- Network connection problem
Like anything else in this world, Exceptions can also be categorized! Based on whether or not you are required to handle the exception, there are two types of exceptions:
- Checked Exceptions
- Unchecked Exceptions.
List of checked exception
- ClassNotFoundException Class not found.
- CloneNotSupportedException Attempt to clone an object that does not implement theCloneable interface.
- IllegalAccessException Access to a class is denied.
- InstantiationException Attempt to create an object of an abstract class or interface.
- InterruptedException One thread has been interrupted by another thread.
- NoSuchFieldException A requested field does not exist.
- NoSuchMethodException A requested method does not exist.
List of unchecked exception
- ArithmeticException Arithmetic error, such as divide-by-zero.
- ArrayIndexOutOfBoundsException Array index is out-of-bounds.
- ArrayStoreException Assignment to an array element of an incompatible type.
- ClassCastException Invalid cast.
- IllegalArgumentException Illegal argument used to invoke a method.
- IllegalMonitorStateException Illegal monitor operation, such as waiting on an unlocked thread.
- IllegalStateException Environment or application is in incorrect state.
- IllegalThreadStateException Requested operation not compatible with current thread state.
- IndexOutOfBoundsException Some type of index is out-of-bounds.
- NegativeArraySizeException Array created with a negative size.
- NullPointerException Invalid use of a null reference.
- NumberFormatException Invalid conversion of a string to a numeric format.
- SecurityException Attempt to violate security.
- StringIndexOutOfBounds Attempt to index outside the bounds of a string.
- UnsupportedOperationException An unsupported operation was encountered.
Common scenarios of Exception Handling where exceptions may occur
There are given some scenarios where unchecked exceptions can occur. They are as follows:
1) Scenario where ArithmeticException occurs
If we divide any number by zero, there occurs an ArithmeticException.
2) Scenario where NullPointerException occurs
If we have null value in any variable, performing any operation by the variable occurs an NullPointerException.
String s=null; System.out.println(s.length());//NullPointerException3) Scenario where NumberFormatException occurs
The wrong formatting of any value, may occur NumberFormatException. Suppose I have a string variable that have characters, converting this variable into digit will occur NumberFormatException.
String s="abc"; int i=Integer.parseInt(s);//NumberFormatException4) Scenario where ArrayIndexOutOfBoundsException occurs
If you are inserting any value in the wrong index, it would result ArrayIndexOutOfBoundsException as shown below:
int a=new int; a=50; //ArrayIndexOutOfBoundsException
Following is the list of important methods available in the Throwable class.
|SN||Methods with Description|
|1||public String getMessage()|
Returns a detailed message about the exception that has occurred. This message is initialized in the Throwable constructor.
|2||public Throwable getCause()|
Returns the cause of the exception as represented by a Throwable object.
|3||public String toString()|
Returns the name of the class concatenated with the result of getMessage()
|4||public void printStackTrace()|
Prints the result of toString() along with the stack trace to System.err, the error output stream.
|5||public StackTraceElement  getStackTrace()|
Returns an array containing each element on the stack trace. The element at index 0 represents the top of the call stack, and the last element in the array represents the method at the bottom of the call stack.
|6||public Throwable fillInStackTrace()|
Fills the stack trace of this Throwable object with the current stack trace, adding to any previous information in the stack trace.