I wonder why the IllegalArgumentException
class does not need to be catched or declared, while other exceptions have to (eg java.net.MalformedURLException
).
public void foo() {
throw new IllegalArgumentException("spam");
}
public void bar() throws MalformedURLException { // required
throw new MalformedURLException("ham");
}
I know that Error
s do not have to be declared because they are not intended to be catched.
I'd like to declare a new exception which also does not require to be catched.
There are two types of Exceptions in Java: Checked Exceptions and Unchecked Exceptions. Checked exception has to be caught or declared to be thrown (like MalfomedURLException
) but catching Unchecked exceptions (like IllegalArgumentException
) is not mandatory and you can let the caller catch them (or throw them up to its caller).
For more information, take a look at this post:
Java: Checked vs Unchecked Exceptions Explanation
If you inherit your custom exception class from RuntimeException
or any exception class inherited from it, then catching your exception will not be mandatory.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With