Definition
Custom exceptions in Java are user-defined exceptions created by extending the base Exception class (for checked exceptions) or RuntimeException class (for unchecked exceptions). These exceptions help handle specific error scenarios in a more descriptive and application-specific way.
Example
// Define a custom exception
class CustomException extends Exception {
public CustomException(String message) {
super(message); // Pass message to the superclass constructor
}
}
// Example usage
public class CustomExceptionExample {
// Method that throws the custom exception
public static void checkNumber(int number) throws CustomException {
if (number < 0) {
throw new CustomException("Number cannot be negative: " + number);
}
System.out.println("Valid number: " + number);
}
public static void main(String[] args) {
try {
checkNumber(5); // Valid case
checkNumber(-3); // This will throw CustomException
} catch (CustomException e) {
System.out.println("Caught Exception: " + e.getMessage());
}
}
}
Output
Valid number: 5
Caught Exception: Number cannot be negative: -3
Feature
- Custom Messages: Allow developers to define detailed error messages specific to the exception.
- Checked or Unchecked: Developers can choose whether the exception should be checked or unchecked based on the application’s needs.
- Inheritance: Custom exceptions integrate seamlessly with Java’s exception hierarchy.
- Centralized Error Handling: Simplifies debugging by categorizing specific types of errors.
Advantages
- Improved Readability: Provides descriptive and meaningful exception names, helping to understand the problem at a glance.
- Error-Specific Handling: Facilitates handling specific error scenarios distinct from generic exceptions.
- Encapsulation: Encapsulates error logic and conditions in one place, making the code modular and easier to maintain.
- Enhanced Debugging: Helps in debugging by clearly specifying the cause of the exception.
- Code Reusability: Custom exceptions can be reused across the application, promoting consistency in error handling.