Bewährte Methode für die Fehlerbehandlung mit der ASP.NET-Web-API

8

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.

    
Bastien Vandamme 25.06.2016, 05:27
quelle

3 Antworten

17

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%     
Nkosi 25.06.2016, 19:33
quelle
8

Bitte beachten Sie diesen Link Exception Handling in ASP.NET Web API - Eine geführte Tour . Es gibt eine 4-stufige Ausnahmebehandlungspipeline:

  • Stufe 1 - HttpResponseException
  • Level 2 - Ausnahmefilter
  • Stufe 3 - Protokollierung
  • Level 4 - Ausnahmebehandler
  

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.
  •   
    
Phuc Thai 14.03.2017 06:21
quelle
1

Es gibt eine Reihe von Methoden, die jeweils um ein logisches Objektdiagramm erweitert werden;

Dieser Artikel listet sie alle auf; Ссылка

Ich finde es nützlich, eine der Methoden auf höherer Ebene zu verwenden, um doppelten Code zu vermeiden.

    
Milney 25.06.2016 10:45
quelle