新建一个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(opt => { opt.Filters.Add (); });
制造一个报错的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");
}
}
}



