如何使用HandleError仅处理特定类型的Exception,并正常抛出其余的Exceptions?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用HandleError仅处理特定类型的Exception,并正常抛出其余的Exceptions?相关的知识,希望对你有一定的参考价值。

我正在开展团队项目,我遇到以下情况:

我创建了自己的Exception类,我希望处理所有抛出的myException类型的异常并自动重定向到Error视图,在那里我很好地显示错误,这是可以的。这是我在Web.config中添加的内容:

<customErrors mode="On" defaultRedirect="Error" />

问题是我希望所有其他异常都能正常抛出,查看有关它的所有信息,包括堆栈跟踪,源文件和行错误,这对团队项目非常有用。

我已经尝试了[HandleError(ExceptionType = typeof(myException)],但没有用。

我也尝试覆盖控制器的OnException函数,如果异常不是myException,那么我会再次抛出它,但我仍然进入错误视图。

protected override void OnException(System.Web.Mvc.ExceptionContext filterContext)
{
    if (filterContext.Exception.GetType() != typeof(myException)) {
        throw filterContext.Exception;
    }
    base.OnException(filterContext);
}

有什么想法可行吗?

谢谢。

以上是关于如何使用HandleError仅处理特定类型的Exception,并正常抛出其余的Exceptions?的主要内容,如果未能解决你的问题,请参考以下文章

HandleError Attribute

如何在 Visual Studio 代码中仅搜索特定文件类型?

IErrorHandler

RAML:如何仅导出特定类型的 XSD

如何禁用 *.test.* 文件(包括导入的组件)中的所有类型检查

如何仅允许特定用户查看 Drupal 中内容类型的特定字段?