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

相关内容

热门资讯

玩家必看教程辅助器技巧!掌上约... 玩家必看教程辅助器技巧!掌上约牌多功能辅助器技巧,掌上约牌都是真的有辅助器技巧1)掌上约牌辅助插件:...
重大通报外挂方法!中至山西麻将... 重大通报外挂方法!中至山西麻将多功能外挂方法,中至山西麻将本来存在有外挂方法1、中至山西麻将免费脚本...
重要通知透视挂app!丹东约战... 重要通知透视挂app!丹东约战麻将多功能透视挂app,丹东约战麻将好像真的有透视挂app1、丹东约战...
今日公布外挂插件!亲邻麻将多功... 今日公布外挂插件!亲邻麻将多功能外挂插件,亲邻麻将原来是真的有外挂插件1、该软件可以轻松地帮助玩家将...
揭秘外挂教程!中至余干麻将多功... 揭秘外挂教程!中至余干麻将多功能外挂教程,中至余干麻将果然真的是有外挂教程1、用户打开应用后不用登录...
揭秘一下辅助软件!星火燎原多功... 揭秘一下辅助软件!星火燎原多功能辅助软件,星火燎原确实有辅助软件1、星火燎原透视辅助软件激活码多个强...
终于懂了透视器技巧!趣玩情怀多... 终于懂了透视器技巧!趣玩情怀多功能透视器技巧,趣玩情怀竟然存在有透视器技巧亲,关键说明,趣玩情怀透视...
盘点一款开挂方法!天天黄石麻将... 盘点一款开挂方法!天天黄石麻将多功能开挂方法,天天黄石麻将切实是有开挂方法天天黄石麻将是不是有人用挂...
玩家爆料辅助器工具!嵘聚多功能... 玩家爆料辅助器工具!嵘聚多功能辅助器工具,嵘聚总是有辅助器工具;玩家爆料辅助器工具!嵘聚多功能辅助器...
玩家亲测辅助app!老友汇多功... 玩家亲测辅助app!老友汇多功能辅助app,老友汇总是是真的有辅助app1、上手简单,内置详细流程视...