參考文獻(xiàn):《Java瘋狂講義》(第三版)
異常
知識(shí)點(diǎn):對(duì)于構(gòu)造大型岳悟、健壯近尚、可維護(hù)的應(yīng)用而言移稳,錯(cuò)誤處理是整個(gè)應(yīng)用需要考慮的是重要方面幅疼,曾經(jīng)有一個(gè)教授告訴我:國內(nèi)的程序員做開發(fā)時(shí),往往只做了“對(duì)”的事情爷肝!他這句話有很深的遺憾——程序員開發(fā)程序的過程宇智,是一個(gè)創(chuàng)造的過程汽纤,這個(gè)過程需要有全面的考慮槽片,僅做“對(duì)”的事情是遠(yuǎn)遠(yuǎn)不夠的何缓。
知識(shí)點(diǎn):
1、無法窮舉所有的異常情況还栓。因?yàn)槿祟惖闹R(shí)的限制碌廓,異常情況總比可以考慮到的情況多,所以程序總是不夠健壯剩盒。
2谷婆、錯(cuò)誤處理代碼和業(yè)務(wù)實(shí)現(xiàn)代碼混雜。這種錯(cuò)誤處理和業(yè)務(wù)實(shí)現(xiàn)混則的代碼嚴(yán)重影響程序的可讀性辽聊,會(huì)增加程序維護(hù)的難度纪挎。
Error錯(cuò)誤,一般是指與虛擬機(jī)相關(guān)的問題身隐,如系統(tǒng)崩潰廷区,虛擬機(jī)錯(cuò)誤唯灵,動(dòng)態(tài)鏈接失敗贾铝,這種錯(cuò)誤無法恢復(fù)或者不可能捕捉,因此應(yīng)用程序不應(yīng)該試圖使用catch來捕捉Error對(duì)象
知識(shí)點(diǎn):
異常捕獲時(shí),一定要記住先捕獲小異常垢揩,再捕獲大異常玖绿。
訪問異常信息
所有的異常對(duì)象都包含了如下幾個(gè)常用方法:
1、getMessage():返回該異常的詳細(xì)描述字符串叁巨。
2斑匪、printStackTrace():將該異常的跟蹤棧信息輸出到標(biāo)準(zhǔn)錯(cuò)誤輸出。
3锋勺、printStackTrace(PrintStream s):將該異常的跟蹤棧信息輸出到指定輸出流
4蚀瘸、getStackTrace():返回該異常的跟蹤棧信息。
Checkde異常和Runtime異常:
Java的異常被分為兩大類:Checked異常和Runtime異常(運(yùn)行時(shí)異常)庶橱。所有的RuntimeException類及其子類的實(shí)例都被成為Runtime異常贮勃,其他則稱為Checked異常。
Checked異常體現(xiàn)了Java的設(shè)計(jì)哲學(xué)——沒有完善錯(cuò)誤處理的代碼根本就不會(huì)執(zhí)行苏章。
異常鏈:
對(duì)于企業(yè)級(jí)應(yīng)用而言寂嘉,常常有嚴(yán)格的分層關(guān)系,上層功能的實(shí)現(xiàn)嚴(yán)格依賴于下層的API枫绅,也不會(huì)跨層訪問泉孩。
表現(xiàn)層:用戶界面——API——>中間層:實(shí)現(xiàn)業(yè)務(wù)邏輯——API——>持久層:保存數(shù)據(jù)
異常處理規(guī)則:
1、使程序代碼混亂最小化并淋。
2寓搬、捕獲并保留診斷信息。
3县耽、通知合適的人員订咸。
4、采用合適的方式結(jié)束異吵昃鳎活動(dòng)脏嚷。
不要過度使用異常