VB.NET異常處理突破局限性
因為VB.NET的出現(xiàn),在一定程度上改變了開發(fā)人員的編程習(xí)慣。比如在錯誤的處理方面。VB.NET異常處理的方式徹底改變了VB6中的錯誤處理方式,這點我最喜歡,哈! 項目中的異常分為兩種,業(yè)務(wù)異常和系統(tǒng)異常:
1、業(yè)務(wù)Exception:
從ApplicationException中繼承,有一個總的Exception,然后各個模塊的Exception都是從總的Exception中繼承,從而形成了一個層次結(jié)構(gòu):
- ApplicationException
- ProjectException
- Module1Exception
- Module1Concret1Exception
- Module2Concret2Exception
- ……………
- Module2Exception
- ……………
2、系統(tǒng)異常,報出的錯誤,包括數(shù)據(jù)庫報出的:
VB.NET異常處理捕捉的原則是只捕捉需要的錯誤,因材在數(shù)據(jù)訪問層和業(yè)務(wù)層不需要Catch所有的錯誤,如下:
- Public Function Methoda()
- IF …… THEN
- If ContextUtil。IsInTran
saction Then- ContextUtil.etAbort()
- End If
- Throw Module1Concret1
Exception- End If
- ……
Catch 需要的具體的錯誤Module2Concret1Exception
- '這里不需要 Catch
ProjectException- End Function
為了便于調(diào)試,需要把系統(tǒng)異常記錄在日志文件中,這里用的MS提供的Exception Management Application Block 來實現(xiàn)的,具體的實現(xiàn)方式見MSDN,下載地址是:
http:www.icrosoft.om/downloads/details.spx?FamilyId=8CA8EB6E-6F4A-43DF-ADEB-8F22CA173E02&displaylang=en
在界面顯示錯誤信息的時候為兩種顯示方式,一種是用來顯示業(yè)務(wù)異常的,一種界面是用來顯示系統(tǒng)異常的,VB.NET異常處理代碼如下:
- Public Sub Button_OnClick()
- Dim objblModule As 業(yè)務(wù)層
- Try
- ObjblModul.osomething()
- Catch ProjectExcption
- '顯示一個定制的頁面()
- Catch Exception
- 'call Exception Management.
Publish method to log
the exception- '顯示另一個定制的頁面,定制的頁面
有將具體的錯誤信息發(fā)送到administrator
的功能,就象windows的錯誤頁面- End Try
- End Sub
【編輯推薦】