【发布时间】:2018-01-10 05:13:13
【问题描述】:
我在 WebApi2 中工作。我将实现全局异常处理。正如我们所知,我们可以使用 IExceptionHandler 和 IExceptionLogger 来做同样的事情。我也实现了相同的功能并且工作正常。
但我对更多的场景有点困惑。所以我把我所有的场景分成三个部分
1。 API 异常
这里需要处理API范围内的所有异常。当然,这里的救援是 IExceptionHandler 和 IExceptionLogger 接口。我们可以实现这一点,并可以从处理程序发送自定义 HttpResponseMessage
2。 Owin 管道异常
这里是 owin 中间件中的所有异常,例如令牌 api 和所有 Auth 提供程序级别的错误。
我还阅读了有关中间件的自定义异常的信息。但在这里我需要明确的最佳实践建议。
在 Global.asax 中创建自定义中间件异常或处理这样好吗?
3。除指定以外的任何其他例外情况
这里没有上面提到的任何其他例外。我不确切知道,这里是否有任何其他例外,但我只是在考虑这一点。如果是,我们需要如何处理?
唯一的选项是 Global.asax Application_Error 事件。但是从这里我怎么能用我的自定义模型作为 HttpResponseMessage 响应。
请给您的 cmets 和更好的方法来处理所有这些异常。
目标: 客户端没有收到任何带有完整堆栈跟踪的 500 错误。所有异常都将被处理并仅将我的自定义消息发送给客户端
问题: 如何处理 owin 管道错误以及第 1 点未处理的任何错误?
【问题讨论】:
标签: c# exception-handling asp.net-web-api2 owin-middleware