我瞭解到調用函數必須聲明或處理被調用的函數聲明拋出的所有異常。但下面的代碼可以編譯。Java:調用函數如何不處理來自子函數的異常?
public a() throws SipException, NullPointerException {
try { }
catch (SipException e) { throw e; }
catch (Exception e) { throw new SipException("...", e); }
}
public b() throws SipException { a(); }
因爲宣告拋出NullPointerException,雖然它並沒有真正做到,怎麼能b忽略這個好嗎?
+1編程錯誤與正常錯誤 –
不幸的是,許多庫並不遵循這種方法,並針對由瞬態故障條件,配置錯誤或無效輸入等事件導致的各種錯誤拋出RuntimeExceptions。 – Thilo