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