首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

.net异常的处理

2014-01-28 
请教一个问题(.net异常的处理)。 用.net开发Web程序时,分了页面层,业务层,数据访问层。 在页面层需要获取Data

 
请教一个问题(.net异常的处理)。
用.net开发Web程序时,分了页面层,业务层,数据访问层。
在页面层需要获取DataSet绑定到DataGrid中在页面显示数据。在页面层调用业务层的方法
DateSet GetDataForDisplay(),然后再调用数据访问层的方法DateSet GetDataForDisplay()取得数据并依次返回给页面层。
问题是,如果我在业务层通过业务判断知道页面层的查询有不合法的地方,我如何通知页面层?一直采用try catch的方法,通过业务判断得到的结果应该不算异常,并且用异常处理的方式来处理效率很低。
不知道各位如何处理这个问题? 

 

------解决方法--------------------------------------------------------
http://www.jyklzz.net/web/index.aspx

数据层 ——功能介绍、内部变量 里面有介绍
------解决方法--------------------------------------------------------
业务层发现UI层的查询不合法?UI层应该完成对数据的验证再调用Business Logic Layer。
或者,你硬要在BLL中检查的话,可以通过函数返回值来完成。

当然你也可以仅仅是简单地再抛出异常,让页面统一转到一个ErroPage
------解决方法--------------------------------------------------------
// 如果我在业务层通过业务判断知道页面层的查询有不合法的地方,我如何通知页面层

这种错误应该在整体设计的时候一起考虑,把错误也当作业务内容之一
------解决方法--------------------------------------------------------
you can make a custom exception class,which inherit system.exception.
Indeed it's not high efficient,but it's a better way.
it should be besiness exception.
------解决方法--------------------------------------------------------
把错误当成业务内容之一,我认为是不合适的.从逻辑上讲,错误就是错误,一个正常的业务流程是不应该出错的,如果在过程中出现了错误,这是业务所不允许的,错误在当前处理过程就应该结束,而不应该再在继续流转下去.通过抛出自定义的异常,可以在外层捕获详细的错误信息,记录下来,方便维护.
------解决方法--------------------------------------------------------
————————
但这个错误属于自己预先能预知的,比如预算超支等
————————
这个不算异常,直接转到错误显示页面
发生异常应该抛出,转向自定义的基类或异常类,通常做记录后,再抛出系统处理,给用户显示的始终是较友好的错误显示页面
------解决方法--------------------------------------------------------