Why do I need to wrap my thrown custom exceptions with try/catch whilst trying to throw them, but I don’t have to do that for generic exceptions? Like in the example, my Exception subclass :
public class MyException extends Exception {
public MyException(String msg) {
super(msg);
}
}
Throwing exceptions :
public class Exe {
private static void testex(String test) {
if (null!=test) {
throw new UnsupportedAddressTypeException();
} else {//Removing try/catch block results in compile failure
try {
throw new MyException("message");
} catch (MyException e) {
e.printStackTrace();
}
}
}
}
UnsupportedAddressTypeException is a subclass of RuntimeException, and from the JavaDoc: