我这样编码,它对单元测试很好。Web API 2响应类型比较
[ResponseType(typeof(bool))]
public async Task<IHttpActionResult> Send()
{
try
{
await dosomething();
return Ok(true);
}
catch (Exception ex)
{
return InternalServerError(ex);
}
}
但有人建议尝试捕捉是多余的,因为Web API处理已经和他提出了这样的代码:
public async Task<bool> Send()
{
await dosomething();
return true;
}
我只是想知道哪一个是更好的选择。
像这样的异步编程,我会建议第一个选项最适合当你需要调试你的工作和捕捉异常。 Web API不会自动处理,我不会同意这一点。尝试在两种情况下抛出异常来测试它。 – Derek
我认为额外的try catch会导致它在性能方面做更多的工作,如果有一个异常它会在这里被捕获并且不会传播到Web API全局级别。我猜Web API已经处理了未捕获的异常,所以仍然会返回错误500。无论如何,我会尽量产生一个例外,并检查出来。谢谢 –
我只是在谈论何时需要调试错误。 – Derek