出现了有关 ASP.NET Web API 中处理错误的最佳方法的问题。遇到错误应该立即返回,还是应该累积并集中返回?
在此方法中,错误以 HttpResponseException 对象的形式抛出,立即停止进一步处理。例如:
public void Post(Customer customer) { if (string.IsNullOrEmpty(customer.Name)) { throw new HttpResponseException("Customer Name cannot be empty", HttpStatusCode.BadRequest); } if (customer.Accounts.Count == 0) { throw new HttpResponseException("Customer does not have any account", HttpStatusCode.BadRequest); } }
立即错误处理的优点:
立即错误处理的缺点:
在这种方法中,错误被收集到一个列表中并作为 HttpResponseException 对象集体返回。例如:
public void Post(Customer customer) { List<string> errors = new List<string>(); if (string.IsNullOrEmpty(customer.Name)) { errors.Add("Customer Name cannot be empty"); } if (customer.Accounts.Count == 0) { errors.Add("Customer does not have any account"); } var responseMessage = new HttpResponseMessage<List<string>>(errors, HttpStatusCode.BadRequest); throw new HttpResponseException(responseMessage); }
累积错误处理的优点:
累积错误处理的缺点:
立即错误处理和累积错误处理之间的选择取决于应用程序的要求。对于简单的场景,立即处理错误就足够了。对于更复杂的场景,累积错误处理可能更合适。
自从回答这个问题以来,有几篇博客文章讨论了这个主题,包括:
当前的错误处理实践包括:
以上是ASP.NET Web API 中的立即错误处理与累积错误处理:哪种方法最好?的详细内容。更多信息请关注PHP中文网其他相关文章!