ASP.NETMVC中API异常过滤器在异常时返回200响应代码。
创始人
2024-09-19 08:30:41
0

可以通过重写 ExceptionFilterAttribute 类的 OnException 方法来实现在 API 异常时返回正确的 HTTP 响应代码。

以下是代码示例:

public class CustomExceptionFilterAttribute : ExceptionFilterAttribute
{
    public override void OnException(HttpActionExecutedContext context)
    {
        if (context.Exception != null)
        {
            // 根据异常类型设置要返回的 HTTP 响应代码
            var responseCode = HttpStatusCode.InternalServerError;

            if (context.Exception is AccessDeniedException)
            {
                responseCode = HttpStatusCode.Forbidden;
            }
            else if (context.Exception is NotFoundException)
            {
                responseCode = HttpStatusCode.NotFound;
            }

            // 创建 HttpResponseMessage 对象并设置要返回的 HTTP 响应代码
            var response = context.Request.CreateResponse(responseCode);

            // 将错误信息写入响应体中
            response.Content = new StringContent(context.Exception.Message);

            // 替换执行结果为新的 HttpResponseMessage 对象
            context.Response = response;
        }
    }
}

使用方法:

可以将 CustomExceptionFilterAttribute 属性添加到 API 控制器中的某个方法上,以使该方法调用后产生的异常能够被过滤器捕获并返回正确的 HTTP 响应代码。

例如:

[CustomExceptionFilter]
public IHttpActionResult Get(int id)
{
    var result = service.GetData(id);

    if (result == null)
    {
        throw new NotFoundException("Data not found.");
    }

    return Ok(result);
}

相关内容

热门资讯

出现新变化!皇豪辅助,切实真的... 出现新变化!皇豪辅助,切实真的是有辅助app(有挂秘籍)-哔哩哔哩1、这是跨平台的皇豪辅助轻量版有透...
据统计!微信小程序破解内购,好... 据统计!微信小程序破解内购,好像是有辅助平台(有挂分析)-哔哩哔哩微信小程序破解内购脚本下载中分为三...
一直以来!胡乐辅助脚本是真的假... 您好,胡乐辅助脚本是真的假的这款游戏可以开挂的,确实是有挂的,需要了解加去威信【136704302】...
据报道!新上游辅助反杀,总是是... 据报道!新上游辅助反杀,总是是有辅助下载(有挂讲解)-哔哩哔哩1、新上游辅助反杀公共底牌简单,新上游...
据统计!微信小程序破解内购,好... 据统计!微信小程序破解内购,好像是有辅助平台(有挂详细)-哔哩哔哩1、上手简单,内置详细流程视频教学...
今年以来!广东闲来辅助软件,都... 今年以来!广东闲来辅助软件,都是存在有辅助神器(确实有挂)-哔哩哔哩亲,关键说明,广东闲来辅助软件透...
最终!心悦填大坑辅助,一贯是真... 最终!心悦填大坑辅助,一贯是真的辅助神器(有挂头条)-哔哩哔哩最终!心悦填大坑辅助,一贯是真的辅助神...
受玩家影响!情怀怎么开挂,原来... 受玩家影响!情怀怎么开挂,原来有挂辅助脚本(有挂教程)-哔哩哔哩;1、每一步都需要思考,不同水平的挑...
近日!新超圣伏虎,果然真的有辅... 近日!新超圣伏虎,果然真的有辅助app(有挂技巧)-哔哩哔哩1、首先打开新超圣伏虎辅助器下载最新版本...
出现新变化!星悦辅助器,原来存... 出现新变化!星悦辅助器,原来存在有辅助下载(的确有挂)-哔哩哔哩1、起透看视 星悦辅助器辅助软件价格...