Können Sie erläutern, welche Vorgehensweise bei der Web-API-Fehlerverwaltung am besten ist? Eigentlich weiß ich nicht, ob es eine gute Übung ist, try catch in meine Api-Anfrage einzubauen.
%Vor%Ich habe das Gefühl, mit dem Versuch, zu einem Server-Side-Code zu fangen ist nicht eine gute Praxis, weil ich nur meine Fang und eine Ausnahme neu anmelden.
Die Fehlerbehandlung in der Web-API wird als Querschnittsaufgabe betrachtet und sollte an einer anderen Stelle in der Pipeline platziert werden, damit sich die Entwickler nicht auf bereichsübergreifende Probleme konzentrieren müssen.
Sie sollten sich die Ausnahmebehandlung in der ASP.NET-Web-API ansehen
Was passiert, wenn ein Web-API-Controller eine nicht abgefangene Ausnahme auslöst? Durch Standardmäßig werden die meisten Ausnahmen mit einer HTTP-Antwort übersetzt Statuscode 500, Interner Serverfehler.
und auch Globale Fehlerbehandlung in ASP.NET Web API 2
Sie sollten versuchen, Ihren Controller so schlank wie möglich zu halten. Die Fehlerbehandlung, wie der ursprüngliche Code, führt nur zur Vervielfältigung von Code und zu unnötigen Bedenken für die Entwickler. Entwickler sollten sich auf den Kern konzentrieren, nicht auf die bereichsübergreifenden Bedenken. Indem Sie sich nur auf den Kern konzentrieren, sieht der obige Code so aus:
%Vor%Warum so mager?
Weil:
%Vor%kann in Authentifizierungsfilter in ASP.NET Web API 2 verschoben werden Dies kann lokal auf den Controller / Aktion oder global angewendet werden, um eine relevante Antwort zurückzugeben.
Modellvalidierung in ASP. NET Web API wie folgt
%Vor%Kann auch in einen Filter wie:
verschoben werden %Vor%Bitte beachten Sie diesen Link Exception Handling in ASP.NET Web API - Eine geführte Tour . Es gibt eine 4-stufige Ausnahmebehandlungspipeline:
Web API bietet uns eine große Flexibilität in Bezug auf die Ausnahmebehandlung. Zur Erinnerung:
- Verwenden Sie HttpResponseException oder die Shortcut-Methoden, um unbehandelte Ausnahmen auf Aktionsebene zu behandeln.
- Verwenden Sie Ausnahmefilter, um bestimmte nicht behandelte Ausnahmen für mehrere Aktionen und Controller zu behandeln.
- Verwenden Sie ExceptionLogger, um eine nicht behandelte Ausnahme zu protokollieren.
- Verwenden Sie Exception-Handler (einen pro Anwendung), um anwendungsweit alle unbehandelten Exceptions zu behandeln.
Tags und Links asp.net-web-api c# exception-handling asp.net