Home >Backend Development >C++ >How to Implement Custom Error Handling in ASP.NET MVC using Application_Error?
Use the Application_Error event of Global.asax to implement custom error handling in ASP.NET MVC
The Application_Error event in the Global.asax file in ASP.NET MVC allows developers to handle unhandled exceptions and errors in the application. A common practice is to redirect users to a specific error page based on the error HTTP status code.
To do this, you can modify the Application_Error event handler as follows:
<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>
In this improved code, we redirect directly to the controller/action and pass the error details as query string parameters instead of creating a new route for the error controller. The Error controller will then receive the message and display it using the view specified in the action method.
<code class="language-csharp">// GET: /Error/HttpError404 public ActionResult HttpError404(string message) { return View("SomeErrorView", message); }</code>
This approach simplifies error handling and avoids the need for additional routing. However, there are trade-offs to be aware of, for example, performance issues may arise if there are a large number of loops or session creations during error handling.
The above is the detailed content of How to Implement Custom Error Handling in ASP.NET MVC using Application_Error?. For more information, please follow other related articles on the PHP Chinese website!