Promise.prototype.catch()
promise.catch(onRejected(error))
Ruft eine Funktion auf, wenn das Promise (oder ein beliebiger Schritt der Kette davor) abgelehnt wird. Was die Funktion zurückgibt, ist das Ergebnis des nächsten Schritts – die Kette kann also nach einem Fehler weiterlaufen.
Parameter
- onRejected(error) – eine Funktion für den Fehler.
Rückgabewert
Ein neues Promise.
Beispiele
const fail = (ms, message) => new Promise((_, reject) => setTimeout(() => reject(new Error(message)), ms));
const settings = await fail(10, 'Datei nicht gefunden')
.then(() => ({ source: 'Server' }))
.catch((e) => {
console.log('verwende den Standardwert, weil:', e.message);
return { source: 'Standard' };
});
console.log(settings);
Ausgabe:
verwende den Standardwert, weil: Datei nicht gefunden
{ source: 'Standard' }
Worauf Sie achten sollten
- catch() fängt nur Fehler aus den Schritten davor ab. Ein Fehler in einem späteren then() braucht ein weiteres catch().
- Wenn Sie den Fehler in catch() nur protokollieren und nichts zurückgeben, bekommt der nächste Schritt
undefined.
Browserunterstützung
Baseline – weithin verfügbar: funktioniert in allen gängigen Browsern, und das schon lange (spätestens seit 2015). Ab Version: Chrome 32, Firefox 29, Safari 8; Node.js 0.12.0. Stand: Oktober 2026 (MDN browser-compat-data).
Siehe auch:
Promise.prototype.then()
Promise.prototype.finally()
try...catch