爲什麼Java中的某些異常未被catch (Exception ex)
捕獲?這是代碼完全失敗,出現未處理的異常。 (Java版本1.4)。Java異常未捕獲
public static void main(String[] args) {
try {
//Code ...
} catch (Exception ex) {
System.err.println("Caught Exception");
ex.printStackTrace();
exitCode = app.FAILURE_EXIT_CODE;
}
finally {
app.shutdown();
}
System.exit(exitCode);
}
我得到一個Exception in thread "main" java.lang.NoSuchMethodError
但這部作品
public static void main(String[] args) {
int exitCode = app.SUCCESS_EXIT_CODE;
try {
//Code ...
} catch (java.lang.NoSuchMethodError mex){
System.err.println("Caught NoSuchMethodError");
mex.printStackTrace();
exitCode = app.FAILURE_EXIT_CODE;
} catch (Exception ex) {
System.err.println("Caught Exception");
ex.printStackTrace();
exitCode = app.FAILURE_EXIT_CODE;
}
finally {
app.shutdown();
}
System.exit(exitCode);
}
我得到Caught NoSuchMethodError java.lang.NoSuchMethodError:
我想捕捉異常會捕獲所有異常?我如何捕獲java中的所有異常?
+1:很好的圖! – akf 2009-09-03 18:31:02
錯誤並不是真正的例外,因此它們不會從Exception中派生出來。 – Powerlord 2009-09-03 18:31:49
@R。 Bemrose--它們根據Java語言規範:「每個異常都由Throwable類或其一個子類的實例表示」和「未檢查的異常類是RuntimeException類及其子類,以及類Error及其子類「。 – 2009-09-03 18:52:13