首页 新闻 搜索 专区 学院

asp. net mvc 异常不进入HandlerEorror

0
[已解决问题] 解决于 2017-11-10 15:55

自定义异常集成系统HandlerEorrorAttibute 

发现在Controller里抛出异常能进入 异常处理,

但是如果是BLL层或者其他公共类里面的方法报错  则 捕捉不到异常,,很是奇怪。。!!!

 

需要在Application_Error捕捉。这可能是什么问题?

问题补充:

继承系统自带的异常处理。。。

在Global里注册了全局,Controller调用BLL层或者其他程序集公共类里抛出异常 却不进异常处理。

Allen_Chang的主页 Allen_Chang | 初学一级 | 园豆:101
提问于:2016-12-20 22:26
< >
分享
最佳答案
0

你所说的BLL层里加了HandlerEorrorAttibute 这个标签吗?Controller里能进入异常处理也许是因为你在基类里加了那个标签(action的左上角)。

请教一个问题mvc中为什么还出现BLL层???不是客户端(Asp.Net MVC)+服务端(WCF、WebService、WebApi)?

奖励园豆:5
~扎克伯格 | 小虾三级 |园豆:1842 | 2016-12-21 09:29

BLL 是业务逻辑   你即使是webapi 也要有逻辑业务啊 逻辑业务写哪?   不矛盾

 

另外不是在BLL模块加标签,这玩意加那上面有个鬼用, 我自己发现了原因。

HandlerEorrorAttibute 并不能捕捉到所有的异常。 最典型的就是 没进入到controller 和 action的异常它是捕获不到的。。。我的就是还没进入暴出的异常  所以捕获不到。。。

要想捕获所有 还是用 appication_error 。

Allen_Chang | 园豆:101 (初学一级) | 2016-12-21 09:32

@Allen_Chang: 那你们业务是挺复杂的。HandlerErrorAttibute是注册到GlobalFilterCollection中,GlobalFilterCollection是继承于IFilterProvider,它只针对Contoller中的Action进行处理,不能捕获controller以外的异常,那是不是可以在BLL层继承HandlerErrorAttibute并且重写注册到自定义过滤器中(你想捕获异常的地方)。

1 HandlerEorrorAttibut—>HandlerErrorAttibut

~扎克伯格 | 园豆:1842 (小虾三级) | 2016-12-21 10:01
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册