日期:2014-05-17  浏览次数:20444 次

MVC3使用过滤器只能捕获Action的异常,如何捕获到业务逻辑层的异常?
现在的异常处理方式是实现IExceptionfilter接口
重写OnExcption,然后使用log4net记录异常
但是发现,记录的异常是控制器中的异常,而不是最原始的异常

比如,action中调用业务逻辑层,业务逻辑层出现了一个数组下标越界的异常
业务逻辑层通过throw 向上抛,action捕获到的异常实际上不是数组下标越界的异常
信息(这里异常信息指的是业务逻辑层的异常行号、异常类型等
而是Action中无关紧要的异常信息,这样的异常信息没什么用

暂时想到的办法是在每一个业务逻辑类中捕获异常,然后记录,但是又觉得这样太麻烦
有没有其他的类似过滤器的方法来统一实现?


------解决方案--------------------
看看ExceptionContext的Exception里面的InnerException是不是最原始的异常信息