Date: 2019dec21
Language: Java
Q. Java: Should I use IllegalArgumentException when my function gets wrong values for parameters?
A. That sounds like what you are supposed to do but its unchecked
So you can write:
void myFunc(int n) { // No `throws` is allowed
if (n < 0) {
throw new IllegalArgumentException("n can not be negative");
}
// ...
}
What's wrong with that? Notice the function has no `throws IllegalArgumentException` and that's allowed.
So using the function:
myFunc(-1);
without a `catch` is also allowed.
That means this program will crash when the exception is thrown.
Maybe that's what you want but not usually.
So I use checked exceptions for this kind of thing like:
void myFunc(int n) throws IOException {
if (n < 0) {
throw new IOException("n can not be negative");
}
// ...
}