【问题标题】:Dealing with errors in BufferedMediaTypeFormatter derived class处理 BufferedMediaTypeFormatter 派生类中的错误
【发布时间】:2013-10-30 14:09:23
【问题描述】:
我正在实现一个 BufferedMediaTypeFormatter 以在 Web API 项目中使用,但是在覆盖 BufferedMediaTypeTormatter 上的 ReadFromStream 时,我找不到有关如何处理错误的任何详细信息。
我知道我应该将错误写入IFormatterLogger.LogError 方法,但是如果输入无效,我应该返回什么?我应该返回null吗?还是抛出异常?如果是,应该抛出哪个异常?
【问题讨论】:
标签:
c#
.net
asp.net-web-api
mediatypeformatter
【解决方案1】:
这取决于您正在寻找的用户体验类型。
如果您抛出异常,Web API 将缩短请求的处理并返回 500 Internal Server 响应(根据您的 HttpConfiguration.IncludeErrorDetailPolicy 设置,有或没有异常详细信息)。
如果您通过 IFormatterLogger.LogError 记录错误(在这种情况下您可以返回 null),则请求处理没有短路,用户需要检查 ModelState有效性来确定是否有任何错误。