[英]Global exception/error handling in asp.net mvc core and dapper
[英]Exception handling ASP .NET Core MVC 6
我現在的配置:
public void ConfigureDevelopment(IApplicationBuilder app, ILoggerFactory loggerFactory)
{
//app.UseDeveloperExceptionPage();
//app.UseDatabaseErrorPage();
app.UseStatusCodePagesWithRedirects("/error/{0}");
app.UseExceptionHandler();
Configure(app);
}
我有這個應該在服務器注冊任何異常時執行的控制器。 當我執行“錯誤/測試”時,我按預期重定向到“錯誤/500”。 如果我手動執行“錯誤/異常”,我會收到服務器 500 本機錯誤,而不是我的。
public class ErrorController : Controller
{
[Route("error/404")]
public ActionResult Error404()
{
return View("404");
}
[Route("error/500")]
public ActionResult Error500()
{
return View("500");
}
[Route("error/test")]
public ActionResult Test()
{
return new StatusCodeResult(500);
}
[Route("error/exception")]
public ActionResult Exception()
{
throw new Exception("Should redirect to error/500");
return Content("nope");
}
}
知道如何在操作中拋出異常時將“錯誤/異常”重定向到“錯誤/500”嗎?
謝謝你。
好沒問題。 使用app.UseExceptionHandler("/error/500");
然后這不再需要了:
[Route("error/exception")]
public ActionResult Exception()
{
throw new Exception("Should redirect to error/500");
return Content("nope");
}
我相信您可以在一個操作上指定多個路由,因此您不需要“異常”操作,只需將它的路由添加到 500:
public class ErrorController : Controller
{
[Route("error/404")]
public ActionResult Error404()
{
return View("404");
}
[Route("error/500")]
[Route("error/exception")]
public ActionResult Error500()
{
return View("500");
}
[Route("error/test")]
public ActionResult Test()
{
return new StatusCodeResult(500);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.