Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在asp.net mvc应用程序中处理未处理异常的一些策略是什么?_Asp.net_Asp.net Mvc_Exception Handling - Fatal编程技术网

在asp.net mvc应用程序中处理未处理异常的一些策略是什么?

在asp.net mvc应用程序中处理未处理异常的一些策略是什么?,asp.net,asp.net-mvc,exception-handling,Asp.net,Asp.net Mvc,Exception Handling,我想知道您在ASP.NET MVC中处理未处理异常的一些策略/实践 简而言之,我希望在任何错误发生时都避免出现黄色屏幕,并向访问者显示错误一致的错误消息 我的意思是,您是为此编写一个显示相应错误页面的控制器,还是以其他方式编写一个httpmodule并在全局级别捕获错误 欢迎您向此方向提供任何信息。请尝试。不要使用您链接到的异常处理文章。这是一篇旧文章,他们没有在框架中添加HandleError属性。使用。它是在preview 4中添加的。使用HandleError属性是一种方法。下面是一个小示

我想知道您在ASP.NET MVC中处理未处理异常的一些策略/实践

简而言之,我希望在任何错误发生时都避免出现黄色屏幕,并向访问者显示错误一致的错误消息

我的意思是,您是为此编写一个显示相应错误页面的控制器,还是以其他方式编写一个httpmodule并在全局级别捕获错误


欢迎您向此方向提供任何信息。

请尝试。

不要使用您链接到的异常处理文章。这是一篇旧文章,他们没有在框架中添加HandleError属性。使用。它是在preview 4中添加的。

使用HandleError属性是一种方法。下面是一个小示例,我使用它来处理来自JQuery、ExtJs和其他方面的Ajax调用

在你的控制器上

public class DataController : Controller
{    
    [HandleError(ExceptionType = typeof(ArgumentException), View = "ErrorAjax")]
    public void Foo(string x, string y)
    {    
        if (String.IsNullorEmpty(x))
            throw new ArgumentException("String cannot be empty!");

            // Call your layers or whatever here
            AnotherCall();
    }
}
然后在您的视图上(ErrorAjax)。注意它是强类型的(HandleErrorInfo)


对不起,伙计!
很抱歉,处理您的请求时出错。
行动=
控制器=
消息=
几件怪事

  • 检查web.config并确保customErrors mode=“On”
  • 首先,在共享文件夹下创建视图

  • 我来查一下。谢谢你的意见。还要确保您的错误页面不返回任何错误。因为你必须使用HandlerErrorInfo作为它的模型-如上所示,但是当然还有其他可能的错误来源。另一个小提示:确保对你的消息进行HtmlEncode,或者如果你在.net 4上(在回答时不可用),使用
    <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<HandleErrorInfo>" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>Sorry Dude!</title>
    </head>
    <body>
        <div>
            <!-- be creative here-->
            Sorry, an error occurred while processing your request.
            Action = <%= ViewData.Model.ActionName %>
            Controller = <%= ViewData.Model.ControllerName %>
            Message = <%= ViewData.Model.Exception.Message %>
    
        </div>
    </body>
    </html>