首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >全局异常处理WebApi 2,与HTTPPOST有问题

全局异常处理WebApi 2,与HTTPPOST有问题
EN

Stack Overflow用户
提问于 2016-04-05 14:32:16
回答 1查看 472关注 0票数 2

我正试图在全局范围内处理异常。我的exceptionHandlerClass来了

代码语言:javascript
复制
   public override void Handle(ExceptionHandlerContext context)
    {
        HttpResponseMessage resp;
        resp = new HttpResponseMessage(HttpStatusCode.BadRequest)
        {
            Content = new StringContent(context.Exception.Message),
            ReasonPhrase = context.Exception.Message
        };
        context.Result = new ErrorMessageResult(context.Request, resp);
    }
}
public class ErrorMessageResult : IHttpActionResult
{
    private readonly HttpResponseMessage _httpResponseMessage;
    private HttpRequestMessage _request;

    public ErrorMessageResult(HttpRequestMessage request, HttpResponseMessage httpResponseMessage)
    {
        _request = request;
        _httpResponseMessage = httpResponseMessage;
    }
}

WebApiConfig.cs中已注册的异常处理程序

代码语言:javascript
复制
   config.Services.Replace(typeof(IExceptionHandler), new GlobalExceptionHandler());

下面是httppost和httpget控制器中的操作

代码语言:javascript
复制
   [Route("ArgumentNull/{id}")]
    [HttpPost]
    public IHttpActionResult ArgumentNull(int id)
    {
        Report objModel = new Report();
        objModel.ThrowItemNotFoundException();
        return Ok();
    }
    [Route("ArgumentNull/{id}")]
    [HttpGet]
    public IHttpActionResult ArgumentNullGet(int id)
    {
        Report objModel = new Report();
        objModel.ThrowItemNotFoundException();
        return Ok();
    }

因此,对httpget的响应是在globalExceptionHandler类中捕获的,但是httpPost只是抛出了堆栈跟踪(不需要的信息)的错误,如果我遗漏了一些东西,请有人告诉我。

EN

回答 1

Stack Overflow用户

发布于 2019-03-21 23:24:53

您的GlobalExceptionHandler类似乎实现了ExceptionHandler,它具有ShouldHandle方法。当请求方法为POST或PUT等场景时,此方法返回false。要解决此问题,请考虑重写该方法以返回true:

代码语言:javascript
复制
public override bool ShouldHandle(ExceptionHandlerContext context)
    {
        return true;                        
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36418748

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档