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);
}

相关内容

热门资讯

科普分享!蜀山四川好友房可以开... 科普分享!蜀山四川好友房可以开挂吗,四川途游辅助软件,2026新版技巧(通报有开挂辅助神器);无需打...
新手必备!免费宝宝浙江游戏辅助... 新手必备!免费宝宝浙江游戏辅助,衢州都莱辅助软件,切实教程(推荐有开挂辅助挂)1、下载安装好免费宝宝...
重大通报!四川麻将血战如何开挂... 重大通报!四川麻将血战如何开挂辅助,约逗东乡辅助器,必胜教程(细节有开挂辅助安装);无需打开直接搜索...
总算了解!微乐小程序晃晃脚本,... 总算了解!微乐小程序晃晃脚本,掌中乐游戏中心辅助器,可靠技巧(科技有开挂辅助器);无需打开直接搜索薇...
查到实测辅助!小闲川南辅助,填... 查到实测辅助!小闲川南辅助,填的那款辅助视频,揭秘攻略(必看有开挂辅助平台);无需打开直接搜索加薇1...
重大通报!金虎爷辅助插件,蜀山... 重大通报!金虎爷辅助插件,蜀山四川辅助,爆料教程(分享有开挂辅助工具);无需打开直接搜索加(薇:13...
玩家必备攻略!柚子联盟辅助器,... 玩家必备攻略!柚子联盟辅助器,潮汕汇辅助器,透明挂教程(盘点有开挂辅助下载)1、下载安装好柚子联盟辅...
玩家科普!雀友会潮汕辅助器,赣... 您好:雀友会潮汕辅助器这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌...
盘点一款!三哥玩十三张辅助器,... 盘点一款!三哥玩十三张辅助器,新玄龙插件,必胜教程(通报有开挂辅助软件);无需打开直接搜索加(薇:1...
揭秘几款!阿当比鸡有辅助吗,传... 揭秘几款!阿当比鸡有辅助吗,传送屋辅助k,wpk教程(详细有开挂辅助工具)1、下载安装好阿当比鸡有辅...