首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用CreateErrorResponse进行WebAPI(OWIN)全局异常记录

使用CreateErrorResponse进行WebAPI(OWIN)全局异常记录
EN

Stack Overflow用户
提问于 2018-01-20 00:40:14
回答 1查看 285关注 0票数 0

当CreateErrorResponse()用于通过API方法返回错误响应时,有没有办法捕获已处理的异常?我目前已经为任何异常注册了一个简单的全局异常记录器,但是对于包括模型过滤器属性在内的一些应用程序接口响应,我使用CreateErrorResponse()返回错误响应,但这不会在全局异常记录器中输入Log()方法。API方法中CreateErrorResponse的用法示例:

代码语言:javascript
复制
return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e);

全局异常记录器:

代码语言:javascript
复制
public class GlobalExceptionLogger : ExceptionLogger
    {
        private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
        public override void Log(ExceptionLoggerContext context)
        {
            log.Error(context.Exception);
        }
    }

调用Log()方法的唯一方法是抛出异常,而不是使用CreateErrorResponse。这是正确的吗?

EN

回答 1

Stack Overflow用户

发布于 2018-01-20 00:46:14

您应该在构造和返回错误响应的同一负流中记录错误和任何跟踪信息。

使用异常来控制应用程序流是不好的做法,请避免这种做法。

全局处理程序用于处理任何您尚未处理的、应该用于异常情况的处理程序,您还可以登录到那里并向用户显示一般的错误消息,同时理清后面的混乱情况:)

如果我误解了你的问题,请纠正我。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48345710

复制
相关文章

相似问题

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