Next.js · Middle · Frage 28 von 75
Was passiert mit redirect() innerhalb von try/catch in einer Server Action?
try {
await save(data);
redirect('/done');
} catch (e) {
return { error: 'Failed to save' };
}- 1Next.js meldet für solchen Code einen Build-Fehler
- 2Die Weiterleitung klappt;
catchläuft nur, wennsavescheitert - 3
catchfängt seine interne Exception ab: keine Weiterleitung
Antwort zeigen
Richtige Antwort: catch fängt seine interne Exception ab: keine Weiterleitung
Erklärung
redirect() und notFound() funktionieren, indem sie spezielle Exceptions werfen. Ein normales catch schluckt sie. Abhilfe: redirect nach dem try/catch-Block aufrufen oder interne Fehler erneut werfen (unstable_rethrow(e)).