More JAVA Programs
Collections in JAVA
Applet Programming in JAVA
Exception Handling in JAVA
Exception Handling is handling of unexpected events. Every programmer, be an expert can have some errors in the code, JAVA provides a robust way to deal with these errors.
Why do we Use it?
One of the simplest examples is, let us say we make a calculator application and then user wants to perform division operation, he enters some positive number in the numerator but 0 in the denominator(eg.. 3/0). Now, if the developer at the time of making the application has kept in mind about certain exceptions then the user will have a smooth user experience as the application would show a message like infinity, but if the developer forgot about it then the application would terminate abruptly, thereby hampering the user experience.
Code running on production environment without proper exception handling is nightmare for developers when there is issue in live application, as it becomes hard to find what caused the error.
Exception Class Hierarchy
All exception types are subclasses of class Throwable, which is at the top of exception class hierarchy.
Errors are the most serious exceptional conditions that you can run into. They are often irrecoverable from and there's no real way to handle them. The only thing we, as developers, can do is optimize the code in hopes that the errors never occur.
Errors can occur due to human and environmental errors. Creating an infinitely recurring method can lead to a
StackOverflowError, or a memory leak can lead to an
Checked Exceptions are the exceptions that we can typically foresee and plan ahead in our application. These are also exceptions that the Java Compiler requires us to either handle-or-declare when writing code.
The handle-or-declare rule refers to our responsibility to either declare that a method throws an exception up the call stack - without doing much to prevent it or handle the exception with our own code, which typically leads to the recovery of the program from the exceptional condition.
This is the reason why they're called checked exceptions. The compiler can detect them before runtime, and you're aware of their potential existence while writing code.
For example FileNotFoundException occurs if File that needs to be opened is not found.
Unchecked Exceptions are the exceptions that typically occur due to human, rather than an environmental error. These exceptions are not checked during compile-time, but at runtime, which is the reason they're also called Runtime Exceptions.
For example trying to retrieve an element from the Array. We should check the length of array first before trying to retrieve the element otherwise it might throw
ArrayIndexOutOfBoundException at runtime.
Handling Exceptions in JAVA
We can handle exceptions in JAVA using :-
|ArithmeticException||Arithmetic Error, like divide by zero.|
|ArrayIndexOutOfBoundsException||Accessing an element out of the size of an array or accessing an illegal index.|
|InputMisMatchException||Thrown by Scanner, indicating that the token retrieved does not match the pattern of the expected type.|
|NullPointerException||Trying to access an object reference that has null value or not allocated any space in memory.|
|NumberFormatException||It is thrown by parse methods, when they are unable to convert string into a number.|
|StringIndexOutOfBounds||Similar to arrayindexoutofboundsexception, but for an array of strings.|
|ClassNotFoundException||Occurs when class is not found in classpath.|
|FileNotFoundException||Occurs when file is not found|
|InterruptedException||This exception is thrown when a thread is interrupted.|