Asp.Net Core unterstützt zwei Möglichkeiten, globale Ausnahmebehandlung für eine Webanwendung, Implementierung von IExceptionFilter oder benutzerdefinierte Middleware zu erstellen. Gibt es einen Vorteil gegenüber dem anderen? Die meisten Referenzen, die ich sehe, sind zum Erstellen von benutzerdefinierten Middleware.Asp.Net Core Web App: Globale Ausnahmebehandlung mit IExceptionFilter vs benutzerdefinierte Middleware
Antwort
Der ASP.NET-Core docs erklärt die Hauptunterschiede zwischen diesen beiden Ansätzen. Wenn Sie über "Ausnahmefilter" sprechen, lautet der Dokumentstatus:
Ausnahmefilter behandeln nicht behandelte Ausnahmen, die bei der Controllererstellung, Modellbindung, Aktionsfiltern oder Aktionsmethoden auftreten. Sie fangen keine Ausnahmen ein, die in Ressourcenfiltern, Ergebnisfiltern oder MVC-Ergebnisausführung auftreten.
Es gibt sogar Hinweise für die bei Middleware zu verwenden, und wenn „Exception Filter“ zu verwenden:
Exception Filter sind gut für Ausnahmen Trapping, die in MVC Aktionen auftreten, aber sie sind nicht so flexibel wie Fehlerbehandlung Middleware. Ziehen Sie Middleware für den allgemeinen Fall vor und verwenden Sie Filter nur dort, wo Sie die Fehlerbehandlung auf Basis der gewählten MVC-Aktion anders durchführen müssen. Beispielsweise verfügt Ihre App möglicherweise über Aktionsmethoden für API-Endpunkte und für Ansichten/HTML. Die API-Endpunkte könnten Fehlerinformationen als JSON zurückgeben, während die view-basierten Aktionen eine Fehlerseite als HTML zurückgeben könnten.
- 1. Globale Ausnahmebehandlung Web Api 2
- 2. Globale Ausnahmebehandlung in ASP.NET 5
- 3. Benutzerdefinierte Authentifizierung asp.net Core Web API
- 4. ASP.NET Core OWIN Middleware
- 5. ASP.NET Core - Middleware auf MVC
- 6. Laravel Spark, benutzerdefinierte globale Middleware
- 7. Ausnahmebehandlung ASP.NET MVC Web API
- 8. asp.net Kern Middleware vs Filter
- 9. ASP.NET Core Middleware oder OWIN Middleware?
- 10. Logging Middleware in Asp.Net Core und danach mit UseExceptionHandler
- 11. ASP.NET Core 2.0 Authentifizierung Middleware
- 12. ASP.Net Core 1.1 MiddleWare Antwort
- 13. Flask globale Ausnahmebehandlung
- 14. Globale Ausnahmebehandlung in einer Eclipse-RCP-App
- 15. Ausnahmebehandlung in ASP.NET Web Api 2
- 16. ASP.NET Core: benutzerdefinierte Cookie-Verarbeitung
- 17. ASP.NET Core ApiVersion ändern Middleware-Hierarchie
- 18. Angular2 Globale Ausnahmebehandlung
- 19. Asp.net Core 2.0 Middleware - Zugriff auf Konfigurationseinstellungen
- 20. Benutzerdefinierte Authentifizierung mit externen Web-Service in ASP.NET Core
- 21. ASP.NET Core Web API-Authentifizierung
- 22. ASP.NET Core Middleware Parameter an Controller übergeben
- 23. VS2017 ASP.NET Core Web Application
- 24. Wie konsumieren Web API Core in ASP.NET Core MVC App
- 25. Globale Ausnahmebehandlung in Jersey
- 26. ASP.NET Core Benutzerdefinierte Parameterbindung
- 27. ASP.NET-Ausnahmebehandlung: ExceptionFilterAttribute vs Overwrite ExecuteAsync
- 28. Keine Veröffentlichungsoption in VS 2017 Pro für ASP.NET Core App
- 29. Globale Ausnahmebehandlung in C++
- 30. WebAPI Globale Ausnahmebehandlung
Mögliche Duplikate von [asp.net Core Middleware vs Filter] (https://stackoverflow.com/questions/42582758/asp-net-core-middleware-vs-filters) – Set