public void loseException() throws Exception { try { throw new Exception("Exception A"); } finally { throw new Exception("Exception B"); } }
調用 loseException()
你會發現,Exception A 被 Exception B覆蓋掉了。這是很是嚴重的設計缺陷,而且很難察覺這些錯誤。 目前Java還未修正這個錯誤。 其解決辦法是將全部拋出異常的方法都打包同一個try-catch中。設計
public void loseException2() throws Exception { try { throw new Exception("Exception A"); } finally { return; } }
這種方法讓你更簡單粗暴的丟失異常,而且不會產生任何輸出。code