出現了有關 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中文網其他相關文章!