[Asp.Net Core]ExceptionFilter能捕捉到哪些异常
Posted 厦门德仔
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Asp.Net Core]ExceptionFilter能捕捉到哪些异常相关的知识,希望对你有一定的参考价值。
1.控制器实例化异常 ----T
public SeventhController(ILogger<SeventhController> logger)
throw new Exception("控制实例化的时候,发生异常了。。");
2.异常发生在Try-cache中 —F
public IActionResult IndexException01()
try
int i = 0;
int j = 1;
int k = j / i; //一定会发生异常;
catch (Exception)
return Json(new
Message = "异常发生在Try-cache中"
); ;
3.在视图中发生异常 ----F
@
ViewData["Title"] = "IndexException02";
<h1>this is Seventh page</h1>
@
int i = 0;
int j = 1;
int k = j / i; //一定会发生异常;
4.Service层发生异常 —T
/// <summary>
/// Service层发生异常
/// </summary>
/// <returns></returns>
public IActionResult IndexException03()
ExceptionService exceptionService = new ExceptionService();
exceptionService.Show();
return View();
5.在action中发生异常 —T
/// <summary>
/// 在action中发生异常
/// </summary>
/// <returns></returns>
public IActionResult IndexException04()
int i = 0;
int j = 1;
int k = j / i; //一定会发生异常;
return View();
6.请求错误路径异常 —可以使用中间件来支持,只要不是200的状态,就都可以处理;
#region 捕捉异常的补充
app.UseStatusCodePagesWithReExecute("/Home/Error/0");//只要不是200 都能进来
app.UseExceptionHandler(errorApp =>
errorApp.Run(async context =>
context.Response.StatusCode = 200;
context.Response.ContentType = "text/html";
await context.Response.WriteAsync("<html lang=\\"en\\"><body>\\r\\n");
await context.Response.WriteAsync("ERROR!<br><br>\\r\\n");
var exceptionHandlerPathFeature =
context.Features.Get<IExceptionHandlerPathFeature>();
Console.WriteLine("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&");
Console.WriteLine($"exceptionHandlerPathFeature?.Error.Message");
Console.WriteLine("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&");
if (exceptionHandlerPathFeature?.Error is FileNotFoundException)
await context.Response.WriteAsync("File error thrown!<br><br>\\r\\n");
await context.Response.WriteAsync("<a href=\\"/\\">Home</a><br>\\r\\n");
await context.Response.WriteAsync("</body></html>\\r\\n");
await context.Response.WriteAsync(new string(' ', 512)); // IE padding
);
);
#endregion
以上是关于[Asp.Net Core]ExceptionFilter能捕捉到哪些异常的主要内容,如果未能解决你的问题,请参考以下文章
Asp.NET Core进阶 第四篇 Asp.Net Core Blazor框架
.NET Core 1.0ASP.NET Core 1.0和EF Core 1.0简介
深入研究 Mini ASP.NET Core(迷你 ASP.NET Core),看看 ASP.NET Core 内部到底是如何运行的
.Net Core 学习 - ASP.NET Core 概念学习
ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 14. ASP.NET Core Identity 入门