加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc-3 – 如何避免在控制器中使用try … catch?

发布时间:2020-12-16 03:58:14 所属栏目:asp.Net 来源:网络整理
导读:我尝试在应用程序的较低层处理我的异常,因为它们可以被处理(记录它们).但是,有一些错误会导致应用程序崩溃,就像参数是NULL一样,并且在这种情况下不应该抛出ArgumentNullException. 如果考虑调用服务层的控制器层.我想避免服务层抛出异常,因为我想在这里处理
我尝试在应用程序的较低层处理我的异常,因为它们可以被处理(记录它们).但是,有一些错误会导致应用程序崩溃,就像参数是NULL一样,并且在这种情况下不应该抛出ArgumentNullException.

如果考虑调用服务层的控制器层.我想避免服务层抛出异常,因为我想在这里处理所有这些(日志记录),但我觉得在这种情况下这是不可能的(如NULL情况).

那么避免在控制器中使用try … catch的最佳方法是什么?或者我应该在控制器中使用try … catch?

解决方法

我更喜欢在 Application_Error方法中处理所有未处理的异常(不应该发生的事情).您可以在此处记录异常,并根据其性质显示正确的错误视图.

自定义模型绑定器,验证器,动作过滤器等??……也可以允许拦截一些异常情况,以避免在任何地方使用try / catch来污染控制器.

对于我打算处理的所有事情,比如业务错误等……使用try / catch没什么问题,甚至更好地使用if语句并让服务层通知你某些操作是成功还是失败(TryXXX模式.)

因此,一如既往,您的问题的答案是:它取决于.这取决于您的应用程序的组织方式,服务层的组织方式,可能发生的错误,您希望明确处理的错误,……许多,很多很多因素,当然还有很多很多,很多可能的方法.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读