Umgang mit Fehlern
Fehler können in zwei Kategorien unterteilt werden: erwartete Fehler und unbehandelte Ausnahmen. Diese Seite führt Sie durch die Möglichkeiten, wie Sie diese Fehler in Ihrer Next.js-Anwendung behandeln können.
Behandlung erwarteter Fehler
Erwartete Fehler sind solche, die während des normalen Betriebs der Anwendung auftreten können, wie z.B. Fehler aus der serverseitigen Formularvalidierung oder fehlgeschlagene Anfragen. Diese Fehler sollten explizit behandelt und an den Client zurückgegeben werden.
Server-Funktionen
Sie können den useActionState
-Hook verwenden, um erwartete Fehler in Server-Funktionen zu behandeln.
Für diese Fehler sollten Sie try
/catch
-Blöcke vermeiden und keine Fehler werfen. Modellieren Sie erwartete Fehler stattdessen als Rückgabewerte.
Sie können Ihre Aktion an den useActionState
-Hook übergeben und den zurückgegebenen state
verwenden, um eine Fehlermeldung anzuzeigen.
Server-Komponenten
Beim Abrufen von Daten innerhalb einer Server-Komponente können Sie die Antwort verwenden, um eine Fehlermeldung bedingt anzuzeigen oder eine redirect
durchzuführen.
Nicht gefunden
Sie können die notFound
-Funktion innerhalb eines Routensegments aufrufen und die not-found.js
-Datei verwenden, um eine 404-Benutzeroberfläche anzuzeigen.
Behandlung unbehandelter Ausnahmen
Unbehandelte Ausnahmen sind unerwartete Fehler, die auf Bugs oder Probleme hinweisen, die während des normalen Ablaufs Ihrer Anwendung nicht auftreten sollten. Diese sollten durch das Werfen von Fehlern behandelt werden, die dann von Fehlergrenzen abgefangen werden.
Verschachtelte Fehlergrenzen
Next.js verwendet Fehlergrenzen, um unbehandelte Ausnahmen zu verwalten. Fehlergrenzen fangen Fehler in ihren untergeordneten Komponenten ab und zeigen eine Fallback-Benutzeroberfläche anstelle der abgestürzten Komponentenstruktur an.
Erstellen Sie eine Fehlergrenze, indem Sie eine error.js
-Datei innerhalb eines Routensegments hinzufügen und eine React-Komponente exportieren:
Fehler steigen zur nächstgelegenen übergeordneten Fehlergrenze auf. Dies ermöglicht eine granulare Fehlerbehandlung durch Platzieren von error.tsx
-Dateien auf verschiedenen Ebenen in der Routen-Hierarchie.

Globale Fehler
Weniger häufig, aber möglich, können Sie Fehler im Root-Layout mit der global-error.js
-Datei behandeln, die sich im Root-App-Verzeichnis befindet, selbst bei Nutzung von Internationalisierung. Die globale Fehler-Benutzeroberfläche muss ihre eigenen <html>
- und <body>
-Tags definieren, da sie das Root-Layout oder Template ersetzt, wenn sie aktiv ist.