当前位置:网站首页>.net core 中使用IAsyncExceptionFilter 捕获全局异常,统一返回信息
.net core 中使用IAsyncExceptionFilter 捕获全局异常,统一返回信息
2022-04-22 18:16:00 【小兜全糖(Cx)】
新建一个API 项目(.net 6)

添加ExceptionHandel 类
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Filters;
namespace ExceptionFilter
{
public class ExceptionHandel : IAsyncExceptionFilter
{
private readonly IWebHostEnvironment _webHostEnvironment;
public ExceptionHandel(IWebHostEnvironment webHostEnvironment)
{
_webHostEnvironment = webHostEnvironment;
}
public Task OnExceptionAsync(ExceptionContext context)
{
string msg = string.Empty;
if (_webHostEnvironment.IsDevelopment())
{
msg = context.Exception.ToString();
}
else
{
msg = $"服务器内部异常{
context.ActionDescriptor.DisplayName}";
}
ObjectResult objectResult = new ObjectResult(new {
code = 500, msg = msg });
context.Result = objectResult;
context.ExceptionHandled = true;
return Task.CompletedTask;
}
}
}
注入
builder.Services.Configure<MvcOptions>(opt =>
{
opt.Filters.Add<ExceptionHandel>();
});
制造一个报错的API
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
namespace ExceptionFilter.Controllers
{
[Route("api/[controller]/[action]")]
[ApiController]
public class ValuesController : ControllerBase
{
[HttpGet]
public Task getValue()
{
return System.IO.File.ReadAllLinesAsync("1.txt");
}
}
}
版权声明
本文为[小兜全糖(Cx)]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_43632687/article/details/122644742
边栏推荐
- Pytorch Note57 Pytorch可视化网络结构
- Dpdk captures traffic from a given port / queue
- Usage of SAP ABAP for all entries
- Zeromq: Event Monitoring
- Huawei router realizes the connection between headquarters and branches through MPLS virtual private network
- I still don't understand the relative path and absolute path. This article takes you to analyze it briefly
- 小程序----组件
- 国产芯片DP9637-K总线收发器替代L9637D芯片和SI9241
- Transformation operator
- SAP ui5 data type learning notes
猜你喜欢
随机推荐
学习文档。
es6 Generator函数的使用
[fundamentals of interface testing] Chapter 11 | detailed explanation of postman associated interface and batch execution use case set
接口测试 Mock 实战(二) | 结合 jq 完成批量化的手工 Mock
Second Cloud a aidé la solution SaaS Cloud Management Platform basée sur un cadre d'intégration d'applications simulé publié par le CETC 32
一个没啥L用,但可以装X的IDEA插件
Failed to start component [StandardEngine[Catalina]. StandardHost[localhost]. StandardContext
Spacy tutorial learning
[Lane] ultra fast lane detection (2) custom model test
uniapp处理强制刷新问题
持续有效的风险指标:动荡指数
zenodo等国外网站下载太慢了可能存在的原因。
Overview of cement data in Guangdong
国产芯片DP9637-K总线收发器替代L9637D芯片和SI9241
即使 Outlook Deleted Items 文件夹清空之后,仍然可以恢复被删除的邮件
MySQL - index
SegAttnGAN Text to Image Generation with Segmentation Attention
Codeforces round 784 (Div. 4) AK solution
国产芯片DP9637-K总线收发器替代L9637D芯片和SI9241
ZeroMQ:事件监控






