Skip to content

Fehlerbehandlung

Ausgelöste Fehler sind eine gute Sache! Sie bedeuten, dass die Runtime erfolgreich erkannt hat, wann etwas in Ihrem Programm schiefgelaufen ist. Sie informiert Sie durch Anhalten der Funktionsausführung im aktuellen Stack, Beenden des Prozesses (in Node) und eine Konsolenmeldung mit Stacktrace.

Ignorieren Sie abgefangene Fehler nicht

Durch Nichtbehandlung abgefangener Fehler verlieren Sie die Möglichkeit zur Problembehebung. Das bloße Protokollieren mit console.log ist unzureichend, da solche Meldungen leicht in der Konsolenausflut untergehen. Wenn Sie Code in try/catch-Blöcke kapseln, impliziert dies Ihre Erwartung potenzieller Fehler – daher benötigen Sie entweder einen Behandlungsplan oder alternativen Codepfad für den Fehlerfall.

Schlecht:

javascript
try {
  functionThatMightThrow();
} catch (error) {
  console.log(error);
}

Gut:

javascript
try {
  functionThatMightThrow();
} catch (error) {
  // One option (more noisy than console.log):
  console.error(error);
  // Another option:
  notifyUserOfError(error);
  // Another option:
  reportErrorToService(error);
  // OR do all three!
}

Ignorieren Sie abgelehnte Promises nicht

Aus demselben Grund wie bei nicht ignorierten Fehlern aus try/catch-Blöcken

Schlecht:

javascript
getdata()
  .then(data => {
    functionThatMightThrow(data);
  })
  .catch(error => {
    console.log(error);
  });

Gut:

javascript
getdata()
  .then(data => {
    functionThatMightThrow(data);
  })
  .catch(error => {
    // One option (more noisy than console.log):
    console.error(error);
    // Another option:
    notifyUserOfError(error);
    // Another option:
    reportErrorToService(error);
    // OR do all three!
  });