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























