Next.js · Middle · Pytanie 28 z 75
Co się stanie z redirect() wewnątrz try/catch w Server Action?
try {
await save(data);
redirect('/done');
} catch (e) {
return { error: 'Failed to save' };
}- ✓Poprawna odpowiedź:
catchprzechwyci wewnętrzny wyjątek przekierowania, więc przekierowania nie będzie - 2Przekierowanie zadziała;
catchwykona się tylko przy błędziesave - 3Next.js zgłosi błąd budowania
Wyjaśnienie
redirect() i notFound() działają przez rzucanie specjalnych wyjątków. Zwykły catch je połyka. Rozwiązanie: wywołać redirect po bloku try/catch lub ponownie rzucać wewnętrzne błędy (unstable_rethrow(e)).