對於乙個大的系統來說,異常處理必須要有乙個總的策略和方針,並在組織內貫徹執行,否則就很難把異常處理好。
一、從整個系統全域性的角度來看
1、程序內錯誤----用異常來報告錯誤(內部錯誤);底層模組通過異常來向高層模組報告錯誤的發生。
2、程序間錯誤----用errorcode, errormessage, action來向外部系統報告錯誤(業務錯誤),尤其是對外提供公共服務,除非是對外不公開的子系統,此時可以使用原生的異常來報告錯誤。一旦錯誤超出服務邊界,最好使用errorcode, errormessage, action的方式向外部報告。
二、從程序內不同模組的角度來看
1、底層模組:dll,一般不需要catch異常;盡量多的使用try--finally;除非定義的自己的異常。
2、高層模組:exe等,盡量在高層模組中處理異常,報告錯誤。
三、從不同的系統型別的角度來講
1、服務型:7* 24小時,通常情況下要確保系統的任何情況下都不要crash,系統發生的任何exception都要有log,有些情況下可能還需要發郵件來通知。
2、ui型:友好的給出使用者提示資訊。必要的時候可以使用aop來在全域性唯一的點來處理exception。
四、實際的異常處理規則
1、異常類必須符合標準,必須可以序列化。
2、不能丟掉任何乙個異常,通常情況下要使用innerexception來保持原始的異常。
3、catch異常後如果不throw的話,必須log異常。
4、記exceptionlog時必須包含棧資訊,也就是要使用tostring方法。
乙個比較全面的基於axios的封裝
在幾個公司工作過,我發現我很少看到考慮的比較全面的ajax封裝。可能是因為我待過的公司不夠優秀吧,也可能是因為我所在的團隊不夠優秀吧。基於這樣的乙個情況,我覺得我可以寫乙個比較全面的基於axios的封裝。這裡我只分享乙個相對比較全面的基於axios的封裝,如果想要更符合你專案的封裝,還請自己多理解或...
乙個比較全面的探測器
乙個比較全面的探測器 response.write response.write vbscript支援 scriptengine response.write buildversion scriptenginebuildversion response.write majorversion scri...
如何把握好乙個店鋪的整體風格
風格永遠是最難的 因為它是一種感覺,是無形的,比如迪士尼的 給人的感覺是歡快活潑的 ibm的 給人的感覺是專業嚴肅的 網易的 給人的感覺是平易近人的。現在的店鋪設計的自由度非常大,和做 沒有什麼區別。那麼,如何把握店鋪的整體風格非常關鍵www.cppcns.com!現在筆者給大家一些經驗。一 統一的...