Es stellt sich die Frage nach dem besten Ansatz für die Fehlerbehandlung in der ASP.NET-Web-API. Sollten Fehler sofort zurückgegeben werden, wenn sie auftreten, oder sollten sie gesammelt und kollektiv zurückgegeben werden?
Bei dieser Methode werden Fehler als HttpResponseException-Objekte ausgegeben, wodurch die weitere Verarbeitung sofort angehalten wird. Zum Beispiel:
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); } }
Vorteile der sofortigen Fehlerbehandlung:
Nachteile der sofortigen Fehlerbehandlung:
In Bei diesem Ansatz werden Fehler in einer Liste gesammelt und gemeinsam als HttpResponseException-Objekte zurückgegeben. Zum Beispiel:
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); }
Vorteile der kumulativen Fehlerbehandlung:
Nachteile von kumulativen Fehlern Handhabung:
Die Wahl zwischen sofortiger und kumulativer Fehlerbehandlung hängt von den Anforderungen der Anwendung ab. Für einfache Szenarien ist eine sofortige Fehlerbehandlung ausreichend. Für komplexere Szenarien ist die kumulative Fehlerbehandlung möglicherweise besser geeignet.
Seit der Beantwortung dieser Frage haben sich mehrere Blogbeiträge mit diesem Thema befasst. einschließlich:
Zu den aktuellen Fehlerbehandlungspraktiken gehören:
Das obige ist der detaillierte Inhalt vonSofortige oder kumulative Fehlerbehandlung in der ASP.NET-Web-API: Welcher Ansatz ist der beste?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!