2016-12-20 56 views
-2

我在我的控制器中获得了很多操作。有没有办法尝试捕获整个控制器文档,而不是在每一个操作中插入try-catch?有没有办法尝试捕捉整个控制器?

+1

这似乎是一个典型的[XY问题(http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem) - 这是一个不好的做法。你应该只捕捉你可以处理的异常。 – EJoshuaS

+0

@EJoshuaS感谢这是一个有用的信息。 – Rasme

回答

0

是的,您可以捕获Application_Error事件,该事件将处理所有未由操作代码处理的异常。欲了解更多信息,请参阅this article

+0

我明白了,我应该把它放在MVC中? – Rasme

+0

它可以在[global.asax.cs](https://www.codeproject.com/Questions/697469/About-Global-asax-File-in-MVC) –

+0

缺点是,这是全球性的,而不是-controller。另外,对我来说,原始问题似乎仍然是[XY问题](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)的例子。 – EJoshuaS

2

如果你想赶上在你的MVC应用程序的所有控制器的任何异常,然后再为全局异常过滤器,你可以重写onException的方法

protected override void OnException(ExceptionContext filterContext) 
{ 
    //your handling logic here 
    filterContext.ExceptionHandled = true; 
} 
+0

我在哪里把它放在MVC? – Rasme

+0

@Rasme正好在你想要处理错误的控制器中 – Steve