Benefits to reuse preexisting exceptions
- It makes your API easier to learn and use.
- Programs using your API are easier to read.
- Fewer exception classes mean a smaller memory footprint and less time spent loading classes.
Common Exceptions
Exception |
Occasion for Use |
IllegalArgumentException |
Non-null parameter value is inappropriate |
IllegalStateException |
Object state is inappropriate for method invocation |
NullPointerException |
Parameter value is null where prohibited |
IndexOutOfBoundsException |
Index parameter value is out of range |
ConcurrentModificationException |
Concurrent modification of an object has been detected where it is prohibited |
UnsupportedOperationException |
Object does not support method |
Principle
- Reuse must be based on semantics, not just on name.
- Also, feel free to subclass an existing exception if you want to add a bit more failure-capture information (Item 63).