When the flow of instructions is disrupted during the execution of the code, exceptions occur and they should be dealt with to avoid any serious circumstances.
Java provides a rich set of classes for working with exceptions in java.lang package. These classes include
● Exception: This is the base class for all exceptions in Java.
● RuntimeException: This is the base class for all exceptions that occur during the execution of a program.
● IOException: This is the base class for all exceptions related to I/O operations.
The following code reads a file and catches an IOException if the file is not found:
try {
FileReader reader = new FileReader("example.txt");
// code that reads the file
reader.close();
} catch (IOException e) {
System.out.println("File not found.");
}
You can also throw exceptions explicitly using the "throw" keyword.
For example, the following code throws an IllegalArgumentException if a negative value is passed to a method:
public void setValue(int x) {
if (x < 0) {
throw new IllegalArgumentException("Value cannot be negative.");
}
// code that sets the value
}
To handle multiple exceptions, ‘|’ is used:
try {
// code that reads a file
} catch (IOException | FileNotFoundException e) {
System. out.println("Error reading file.");
}
Java also provides a way to define your own exception classes by extending the Exception class.
Example:
public class MyException extends Exception {
public MyException(String message) {
super(message);
}
}