參考文獻:《Java瘋狂講義》(第三版)
異常
知識點:對于構(gòu)造大型、健壯、可維護的應(yīng)用而言,錯誤處理是整個應(yīng)用需要考慮的是重要方面,曾經(jīng)有一個教授告訴我:國內(nèi)的程序員做開發(fā)時,往往只做了“對”的事情!他這句話有很深的遺憾——程序員開發(fā)程序的過程,是一個創(chuàng)造的過程,這個過程需要有全面的考慮,僅做“對”的事情是遠遠不夠的。
知識點:
1、無法窮舉所有的異常情況。因為人類的知識的限制,異常情況總比可以考慮到的情況多,所以程序總是不夠健壯。
2、錯誤處理代碼和業(yè)務(wù)實現(xiàn)代碼混雜。這種錯誤處理和業(yè)務(wù)實現(xiàn)混則的代碼嚴重影響程序的可讀性,會增加程序維護的難度。

Error錯誤,一般是指與虛擬機相關(guān)的問題,如系統(tǒng)崩潰,虛擬機錯誤,動態(tài)鏈接失敗,這種錯誤無法恢復(fù)或者不可能捕捉,因此應(yīng)用程序不應(yīng)該試圖使用catch來捕捉Error對象
知識點:
異常捕獲時,一定要記住先捕獲小異常,再捕獲大異常。
訪問異常信息
所有的異常對象都包含了如下幾個常用方法:
1、getMessage():返回該異常的詳細描述字符串。
2、printStackTrace():將該異常的跟蹤棧信息輸出到標準錯誤輸出。
3、printStackTrace(PrintStream s):將該異常的跟蹤棧信息輸出到指定輸出流
4、getStackTrace():返回該異常的跟蹤棧信息。
Checkde異常和Runtime異常:
Java的異常被分為兩大類:Checked異常和Runtime異常(運行時異常)。所有的RuntimeException類及其子類的實例都被成為Runtime異常,其他則稱為Checked異常。
Checked異常體現(xiàn)了Java的設(shè)計哲學(xué)——沒有完善錯誤處理的代碼根本就不會執(zhí)行。
異常鏈:
對于企業(yè)級應(yīng)用而言,常常有嚴格的分層關(guān)系,上層功能的實現(xiàn)嚴格依賴于下層的API,也不會跨層訪問。
表現(xiàn)層:用戶界面——API——>中間層:實現(xiàn)業(yè)務(wù)邏輯——API——>持久層:保存數(shù)據(jù)
異常處理規(guī)則:
1、使程序代碼混亂最小化。
2、捕獲并保留診斷信息。
3、通知合適的人員。
4、采用合適的方式結(jié)束異?;顒印?/p>
不要過度使用異常