Ich habe das offizielle Dokument von PlayFramework über Fehlerbehandlung gelesen. Und ich habe gelernt, dass es gut ist, HttpErrorHandler
Klasse zu verwenden. Und sie sagen, solche Fehlerbehandlungsklassen können Fehler oder Ausnahmen von Action
abfangen. Und ich sah Methoden der DefaultHttpErrorHandler
Klasse. Wie unterscheidet die DefaultHttpErrorHandler
Klasse jedoch Fehler oder Ausnahmen, die von Action
ausgelöst werden? Einige Verfahren wie onServerError
nimmt int
Argument als Parameter, so dass in diesem Fall, wie funktioniert Action
throw Fehler oder Ausnahmen? Zeigt andere Seite es?Wie man Fehler oder Ausnahmen von Action in Play wirft?
Antwort
Grundsätzlich eine Ausnahme in einem Controller geworfen wird einen 500 HTTP-Fehlercode Ergebnis. Die Methode fängt diese Ausnahme ab und behandelt sie.
Auf der anderen Seite, 400, 401, 403 oder 404 HTTP-Fehlercodes ist "Client-Fehler" im Play environnement genannt. Diese Fehler werden von der Methode onClientError
erfasst und behandelt.
Wenn Sie also eine eigene und individuelle Seite für 404 http Fehlerseite („Seite nicht gefunden“) haben wollen, bauen die gegebene Ansicht und rufen Sie es im Inneren des onClientError
Methode (Sie haben die statusCode
Parameter auf verschiedene 404 aus 400, 401 oder anderer http Statuscode).
Wenn Sie eine benutzerdefinierte Fehlerseite haben wollen, müssen Sie in onServerError
Methode, um die spezielle Ansicht aufrufen.
Über serverseitige Fehler kann ich nachvollziehen. In Bezug auf "Client-Fehler" bin ich mir jedoch noch nicht sicher. Hat ein Benutzer beispielsweise Zugriff auf eine Seite, die nicht existiert, müssen wir normalerweise mit dem Statuscode 404 antworten. Wenn der Client Zugriff auf eine Seite hat, die nicht zulässig ist, müssen wir gleichzeitig den 403-Statuscode beantworten. Unterscheidet Play diese unterschiedliche Situation automatisch ohne irgendeine Einstellung? –
Beachten Sie, dass es einen Unterschied zwischen Ihnen eine 404-Ergebnis in einer Aktion zurückkehren (dh. Es war ein Weg, um den Benutzer zu dieser Aktion führen) und dem Benutzer etwas zugreifen, für die es keine Route gibt. Nur im letzteren Fall wird der Fehlerhandler verwendet. Was 403 betrifft, wie würde man wissen, ob der Benutzer Zugang zu einer bestimmten Ressource hat? Dieser Fall hängt davon ab, wie Sie die Autorisierung durchführen. – rethab
Vielen Dank für Ihre Antwort. Aber ich meine, wenn wir einige Kundenfehler haben, die wir deutlich unterscheiden wollen, wie sollen wir das umsetzen? In Play habe ich gelernt, dass wir Fehler umgehen können, indem wir die HttpErrorHandler-Klasse verwenden. In einigen Fällen möchten wir jedoch unterschiedliche Fehlerbehandlungen für verschiedene Fehler vorbereiten. –
- 1. Wie man 404 Ausnahmen in Zend Framework wirft
- 2. Umleitung von Action Play Framework
- 3. Mein Servlet wirft Ausnahmen
- 4. JRJC wirft NoClassDefFound Ausnahmen
- 5. Welche Ausnahmen wirft Newtonsoft.Json.DeserializeObject?
- 6. Mit Ausnahmen und wieder wirft
- 7. Iris - Wie protokolliert man Fehler/Ausnahmen?
- 8. java.util.concurrent.CompletionStage - Wie behandelt man Ausnahmen?
- 9. Wie erstellt man Ausnahmen?
- 10. Auslösen von Ausnahmen in Controller-Methoden Play framework?
- 11. Wie behandelt man Ausnahmen?
- 12. Data Analytics Server 3.1.0 wirft Ausnahmen
- 13. Wie man einen Fehler in Vue.js richtig wirft?
- 14. Play Framework: Abhängigkeit Inject Action Builder
- 15. Wie man einen 404 Fehler in express.js wirft?
- 16. IDbReader wirft Ausnahmen für vorhandene Spalten
- 17. Ausnahmen vs. Fehler in Matlab
- 18. Ausnahmen oder wie funktioniert es von "innen"?
- 19. wie man SKSpriteNode wirft?
- 20. Wie man Kompilierungsfehler von einem Attribut wirft?
- 21. loadAudioFiles wirft Fehler
- 22. Action-Komposition und Async in Play Framework 2.5 in Java
- 23. Wie man eine geprüfte Ausnahme von einem Java-Thread wirft?
- 24. Wie behandelt man mehrere Ausnahmen?
- 25. Play Framework 2.0 - views.render wirft Ausnahme
- 26. mit Keyword wirft Werfen von Runtime Ausnahmen für mich
- 27. Play-mini: wie man ein Bild zurückgibt
- 28. PHP - Konvertieren aller Fehler in Ausnahmen - gut oder schlecht?
- 29. Wie behandelt man Ausnahmen in Parallel.Foreach?
- 30. Python3: Wie definiert man Ausnahmen in Methodenkopfzeilen?
Welches Spiel! Version redest du? –
Normalerweise die neueste Version. Diese Frage kommt mit dem vorliegenden offiziellen Dokument. –