因为VB.NET的出现,在一定程度上改变了开发人员的编程习惯。比如在错误的处理方面。VB.NET异常处理的方式彻底改变了VB6中的错误处理方式,这点我最喜欢,哈! 项目中的异常分为两种,业务异常和系统异常:
1、业务Exception:
从ApplicationException中继承,有一个总的Exception,然后各个模块的Exception都是从总的Exception中继承,从而形成了一个层次结构:
- ApplicationException
- ProjectException
- Module1Exception
- Module1Concret1Exception
- Module2Concret2Exception
- ……………
- Module2Exception
- ……………
2、系统异常,报出的错误,包括数据库报出的:
VB.NET异常处理捕捉的原则是只捕捉需要的错误,因材在数据访问层和业务层不需要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
为了便于调试,需要把系统异常记录在日志文件中,这里用的MS提供的Exception Management Application Block 来实现的,具体的实现方式见MSDN,下载地址是:
http:www.icrosoft.om/downloads/details.spx?FamilyId=8CA8EB6E-6F4A-43DF-ADEB-8F22CA173E02&displaylang=en
在界面显示错误信息的时候为两种显示方式,一种是用来显示业务异常的,一种界面是用来显示系统异常的,VB.NET异常处理代码如下:
- Public Sub Button_OnClick()
- Dim objblModule As 业务层
- Try
- ObjblModul.osomething()
- Catch ProjectExcption
- '显示一个定制的页面()
- Catch Exception
- 'call Exception Management.
Publish method to log
the exception- '显示另一个定制的页面,定制的页面
有将具体的错误信息发送到administrator
的功能,就象windows的错误页面- End Try
- End Sub
【编辑推荐】