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(); } } } }