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 中国語 Web サイトの他の関連記事を参照してください。