当CreateErrorResponse()用于通过API方法返回错误响应时,有没有办法捕获已处理的异常?我目前已经为任何异常注册了一个简单的全局异常记录器,但是对于包括模型过滤器属性在内的一些应用程序接口响应,我使用CreateErrorResponse()返回错误响应,但这不会在全局异常记录器中输入Log()方法。API方法中CreateErrorResponse的用法示例:
return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e);全局异常记录器:
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。这是正确的吗?
发布于 2018-01-20 00:46:14
您应该在构造和返回错误响应的同一负流中记录错误和任何跟踪信息。
使用异常来控制应用程序流是不好的做法,请避免这种做法。
全局处理程序用于处理任何您尚未处理的、应该用于异常情况的处理程序,您还可以登录到那里并向用户显示一般的错误消息,同时理清后面的混乱情况:)
如果我误解了你的问题,请纠正我。
https://stackoverflow.com/questions/48345710
复制相似问题