.NET:如何从Exception对象访问ExceptionContext对象

时间:2010-02-11 16:35:12

标签: asp.net-mvc exception exception-handling

我正在编写一个自定义错误处理方法,并将它传递给Exception对象。我需要能够访问该Exception的ExceptionContext对象,因此我可以在执行Error视图之前将属性设置为true。有没有人知道如何获得ExceptionContext,只给出一个Exception对象?

作为参考,我需要ExceptionContext对象的原因是我可以执行以下代码:

filterContext.ExceptionHandled = true; // filterContext is of type ExceptionContext
this.View("Error_partial", filterContext.Exception).ExecuteResult(this.ControllerContext);

我在网上看到ExceptionHandled 必须设置为true,否则下面的语句会抛出一个黄色的死亡屏幕,而不是我喜欢的友好的“Error_partial”页面。因此,能够访问Exception的ExceptionContext非常重要。任何帮助都将非常感激。

2 个答案:

答案 0 :(得分:0)

聚会很晚,我认为你已经解决了这个问题,但是为了别人的利益:

您可以创建一个实现IExceptionFilter的类,并将其添加到控制器的过滤器集合或GlobalFilterCollection。将自定义异常处理逻辑放入类的OnException方法中,该方法接受ExceptionContext参数。这是ExceptionHandled属性必须设置为true的对象,以避免黄色死亡屏幕。

答案 1 :(得分:-1)

除非您已有ExceptionContext个对象;

您应该创建一个并将Exception对象传递给它,然后它会根据您传递的ExceptionContext对象创建Exception

here