首頁 > 後端開發 > C++ > 如何在 ASP.NET MVC 中實現帶有異常詳細資訊的自訂錯誤處理?

如何在 ASP.NET MVC 中實現帶有異常詳細資訊的自訂錯誤處理?

Linda Hamilton
發布: 2025-01-14 10:17:46
原創
788 人瀏覽過

How Can I Implement Custom Error Handling with Exception Details in ASP.NET MVC?

ASP.NET MVC中的自訂錯誤處理:Global.asax中的Application_Error事件

在ASP.NET MVC應用程式中,Global.asax中的Application_Error事件對於處理未處理例外狀況和提供自訂錯誤頁面至關重要。

將資料傳遞給錯誤控制器

Application_Error事件中的目前程式碼決定HTTP狀態碼並設定RouteData物件以傳遞給Error控制器。但是,該程式碼沒有提供將異常詳細資訊傳遞給控制器的方法。

一種穩健的方法是使用查詢字串參數來傳輸異常訊息。修改後的Application_Error程式碼如下:

<code class="language-csharp">protected void Application_Error(object sender, EventArgs e)
{
    Exception exception = Server.GetLastError();
    Response.Clear();

    HttpException httpException = exception as HttpException;

    if (httpException != null)
    {
        string action;

        switch (httpException.GetHttpCode())
        {
            case 404:
                // 页面未找到
                action = "HttpError404";
                break;
            case 500:
                // 服务器错误
                action = "HttpError500";
                break;
            default:
                action = "General";
                break;
        }

        // 清除服务器上的错误
        Server.ClearError();

        Response.Redirect(String.Format("~/Error/{0}/?message={1}", action, exception.Message));
    }
}</code>
登入後複製

錯誤控制器

錯誤控制器將接收異常訊息作為查詢字串參數:

<code class="language-csharp">// GET: /Error/HttpError404
public ActionResult HttpError404(string message)
{
    return View("SomeView", message);
}</code>
登入後複製

注意事項

雖然這種方法允許靈活的異常處理,但請考慮以下幾點:

  • 避免錯誤處理中的無限循環。
  • 重定向到ASP.NET MVC操作會為請求建立一個會話對象,這可能會影響高使用率系統的效能。
  • 確保錯誤處理功能強大,且不允許將敏感資訊顯示給未經授權的使用者。

以上是如何在 ASP.NET MVC 中實現帶有異常詳細資訊的自訂錯誤處理?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板