考虑以下代码
public void myMethod1() {
try {
this.getClass().getMethod("myMethod").invoke(this);
} catch (Exception e) {
throw e;
}
}
public void myMethod1_fixed() throws Exception {
try {
this.getClass().getMethod("myMethod").invoke(this);
} catch (Exception e) {
throw e;
}
}
public void myMethod2() {
try {
this.getClass().getMethod("myMethod").invoke(this);
} catch (IllegalAccessException | InvocationTargetException | NoSuchMethodException e) {
} catch (Exception e) {
throw e;
}
}
myMethod1()
抱怨没有处理Exception e
被抛出的东西,我理解这Exception
是因为检查异常并且你被迫处理它,因此myMethod1_fixed()
添加throws Exception
并且它很高兴。
现在有了myMethod2()
它也扔了Exception e
,但它虽然没有,但它很高兴throws Exception
,意思Exception
是不受约束?