我正在实现一个用于Web API项目的BufferedMediaTypeFormatter,但是在覆盖BufferedMediaTypeTormatter上的ReadFromStream
时,我找不到有关如何处理错误的任何细节。
我知道我应该在IFormatterLogger.LogError
方法中写错误,但如果输入无效,我应该返回什么?我应该返回null吗?或抛出异常?如果是这样,应该抛出哪个异常?
答案 0 :(得分:0)
这取决于您正在寻找的用户体验类型。
如果您抛出异常,Web API会短暂处理请求并返回500 Internal Server
响应(根据您的HttpConfiguration.IncludeErrorDetailPolicy
设置,包含或不包含异常详细信息)。
如果您通过IFormatterLogger.LogError
记录错误(在这种情况下可以返回null),则请求处理不短路,用户需要检查{ {1}}有效性,以确定是否有任何错误。