error.js
Eine error-Datei ermöglicht es Ihnen, unerwartete Laufzeitfehler abzufangen und eine Fallback-UI anzuzeigen.

error.js
umschließt ein Routensegment und seine verschachtelten Kinder in einem React Error Boundary. Wenn innerhalb des Boundaries ein Fehler auftritt, wird die error
-Komponente als Fallback-UI angezeigt.

Wichtig zu wissen:
- Mit den React DevTools können Sie Error Boundaries ein- und ausschalten, um Fehlerzustände zu testen.
- Wenn Sie möchten, dass Fehler an das übergeordnete Error Boundary weitergegeben werden, können Sie
throw
beim Rendern dererror
-Komponente verwenden.
Referenz
Props
error
Eine Instanz eines Error
-Objekts, das an die error.js
Client Component weitergegeben wird.
Wichtig zu wissen: Während der Entwicklung wird das
Error
-Objekt, das an den Client weitergegeben wird, serialisiert und enthält diemessage
des ursprünglichen Fehlers zur einfacheren Fehlersuche. In der Produktion ist dieses Verhalten jedoch anders, um potenziell sensible Details, die im Fehler enthalten sein könnten, nicht an den Client zu übermitteln.
error.message
- Fehler, die von Client Components weitergegeben werden, zeigen die ursprüngliche
Error
-Nachricht. - Fehler, die von Server Components weitergegeben werden, zeigen eine generische Nachricht mit einem Identifikator. Dies dient dazu, sensible Details nicht preiszugeben. Der Identifikator unter
errors.digest
kann verwendet werden, um die entsprechenden serverseitigen Logs zuzuordnen.
error.digest
Ein automatisch generierter Hash des aufgetretenen Fehlers. Er kann verwendet werden, um den entsprechenden Fehler in serverseitigen Logs zu finden.
reset
Die Ursache eines Fehlers kann manchmal temporär sein. In diesen Fällen kann ein erneuter Versuch das Problem beheben.
Eine Fehlerkomponente kann die Funktion reset()
verwenden, um den Benutzer aufzufordern, den Fehler zu beheben. Bei Ausführung versucht die Funktion, die Inhalte des Error Boundaries erneut zu rendern. Wenn dies erfolgreich ist, wird die Fallback-Fehlerkomponente durch das Ergebnis des erneuten Renderings ersetzt.
Beispiele
Globaler Fehler
Weniger häufig, aber möglich, ist die Behandlung von Fehlern im Root-Layout oder Template mit global-error.js
, das sich im Root-App-Verzeichnis befindet, auch bei Verwendung von Internationalisierung. Die globale Fehler-UI muss ihre eigenen <html>
- und <body>
-Tags definieren. Diese Datei ersetzt das Root-Layout oder Template, wenn sie aktiv ist.
Anmutige Fehlerbehebung mit einem benutzerdefinierten Error Boundary
Wenn das Rendering auf dem Client fehlschlägt, kann es nützlich sein, die letzte bekannte serverseitig gerenderte UI anzuzeigen, um eine bessere Benutzererfahrung zu bieten.
Das GracefullyDegradingErrorBoundary
ist ein Beispiel für ein benutzerdefiniertes Error Boundary, das das aktuelle HTML vor einem Fehler erfasst und speichert. Tritt ein Rendering-Fehler auf, wird das erfasste HTML erneut gerendert und eine persistente Benachrichtigungsleiste angezeigt, um den Benutzer zu informieren.
Versionsverlauf
Version | Änderungen |
---|---|
v15.2.0 | Zeigt global-error auch in der Entwicklung. |
v13.1.0 | global-error eingeführt. |
v13.0.0 | error eingeführt. |