unstable_rethrow
Die Funktion unstable_rethrow
kann verwendet werden, um das Abfangen interner Fehler von Next.js zu vermeiden, die beim Versuch auftreten, Fehler in Ihrem Anwendungscode zu behandeln.
Beispielsweise wirft der Aufruf der Funktion notFound
einen internen Next.js-Fehler und rendert die Komponente not-found.js
. Wenn dies jedoch innerhalb eines try/catch
-Blocks geschieht, wird der Fehler abgefangen, wodurch das Rendern von not-found.js
verhindert wird:
Mit der unstable_rethrow
-API können Sie den internen Fehler erneut werfen und das erwartete Verhalten fortsetzen:
Die folgenden Next.js-APIs basieren auf dem Werfen eines Fehlers, der von Next.js selbst erneut geworfen und behandelt werden sollte:
Wenn ein Routensegment so markiert ist, dass es einen Fehler wirft, sofern es nicht statisch ist, wird auch ein dynamischer API-Aufruf einen Fehler werfen, der ähnlich nicht vom Entwickler abgefangen werden sollte. Beachten Sie, dass Partial Prerendering (PPR) dieses Verhalten ebenfalls beeinflusst. Diese APIs sind:
cookies
headers
searchParams
fetch(..., { cache: 'no-store' })
fetch(..., { next: { revalidate: 0 } })
Wissenswertes:
- Diese Methode sollte am Anfang des catch-Blocks aufgerufen werden, wobei das Fehlerobjekt als einziges Argument übergeben wird. Sie kann auch innerhalb eines
.catch
-Handlers eines Promises verwendet werden.- Wenn Sie sicherstellen, dass Ihre Aufrufe von APIs, die Fehler werfen, nicht in einem try/catch-Block eingeschlossen sind, müssen Sie
unstable_rethrow
nicht verwenden.- Jede Ressourcenbereinigung (wie das Löschen von Intervallen, Timern usw.) müsste entweder vor dem Aufruf von
unstable_rethrow
oder innerhalb einesfinally
-Blocks erfolgen.