gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 07:16:56 27 4
gpt4 key购买 nike

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

简而言之,我想在发生任何错误时避免蓝屏,并向访问者显示错误一致的错误消息。

我的意思是,您是为此编写一个 Controller 来显示适当的错误页面,还是采用其他方式,例如编写 httpmodule 并在全局级别捕获错误。

任何在这个方向上的投入表示赞赏。

最佳答案

使用 HandleError 属性是要走的路。这是我用来处理来自 JQuery、ExtJs 和其他人的 Ajax 调用的一个小示例。

在您的 Controller 上

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();
}
}

然后在您的 View 中 (ErrorAjax)。注意它是强类型的 (HandleErrorInfo)
<%@ 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>

几个问题
  • 检查您的 web.config 并确保 customErrors mode="On"
  • 首先,在 Shared 文件夹下创建 View
  • 关于asp.net - 在 asp.net mvc 应用程序中处理未处理异常的一些策略是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/500283/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com