Exception Handling in Java
An exception is an event, which occurs during the execution of a program, that disrupts the normal flow of the program’s instructions. Java uses try, catch, throw and finally to handle exceptions.
Throwing an Exception
You can manually throw an exception using throw
, and declare it using throws
in the method signature.
double division(int divisor, int dividend) throws Exception {
if (divisor == 0)
throw new Exception("can't divide by zero");
return (divisor * 1.0 / dividend);
}
Try and Catch Blocks
When there’s a risk of an exception occurring, wrap the risky code in a try block and handle specific exceptions using catch.
public class Example {
public static void main(String[] args) {
try {
int result = 10 / 0; // This causes ArithmeticException
System.out.println(result);
} catch (ArithmeticException e) {
System.out.println("Error: Cannot divide by zero");
}
System.out.println("Program continues...");
}
}
✅ Output:
Error: Cannot divide by zero
Program continues...
Finally Block
finally is used to write code that must run regardless of whether an exception occurred or not (like closing a file or database connection).
try {
int[] arr = new int[2];
arr[3] = 5; // This causes ArrayIndexOutOfBoundsException
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("Index out of range!");
} finally {
System.out.println("This will always run.");
}
Common Exception Types
Exception Type | Description |
---|---|
ArithmeticException | Division by zero or bad arithmetic |
NullPointerException | Accessing a method or field of null |
ArrayIndexOutOfBoundsException | Accessing outside array boundaries |
IOException | Input/Output errors (e.g., file not found) |
FileNotFoundException | File not found when trying to read |
IllegalArgumentException | Invalid method argument |