新聞中心
因?yàn)閂B.NET的出現(xiàn),在一定程度上改變了開發(fā)人員的編程習(xí)慣。比如在錯(cuò)誤的處理方面。VB.NET異常處理的方式徹底改變了VB6中的錯(cuò)誤處理方式,這點(diǎn)我最喜歡,哈! 項(xiàng)目中的異常分為兩種,業(yè)務(wù)異常和系統(tǒng)異常:

創(chuàng)新互聯(lián)是一家企業(yè)級(jí)云計(jì)算解決方案提供商,超15年IDC數(shù)據(jù)中心運(yùn)營(yíng)經(jīng)驗(yàn)。主營(yíng)GPU顯卡服務(wù)器,站群服務(wù)器,遂寧托管服務(wù)器,海外高防服務(wù)器,服務(wù)器機(jī)柜,動(dòng)態(tài)撥號(hào)VPS,海外云手機(jī),海外云服務(wù)器,海外服務(wù)器租用托管等。
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ù)訪問層和業(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
【編輯推薦】
- VB.NET事務(wù)處理手工實(shí)行方式
- VB.NET業(yè)務(wù)層實(shí)現(xiàn)業(yè)務(wù)與邏輯
- VB.NET數(shù)據(jù)實(shí)體層實(shí)現(xiàn)方案介紹
- VB.NET MDI子窗體實(shí)例化問題解決方案
- VB.NET字符轉(zhuǎn)換相關(guān)函數(shù)使用說(shuō)明
當(dāng)前名稱:VB.NET異常處理突破局限性
瀏覽路徑:http://m.fisionsoft.com.cn/article/djjesds.html


咨詢
建站咨詢
