dedlfix: Herangehensweise bei Fehlern, wenn man Frameworks verwendet

Beitrag lesen

Tach!

Warum es da in Express nicht möglich sein soll, ein solches Interface nicht in einen try Block setzen zu können, wird wohl immer Euer Geheimnis bleiben. Daß das FW asynchron arbeitet reicht mir als Erklärung jedenfalls nicht 😉

Das ist ein generelles Problem bei asynchronem Code, nicht spezifisch für Express.

try {
  setTimeout(function () { 
    code mit Fehler
  }, 1000);
} catch (e) {
  console.log(e);
}

Das sieht aus, als ob der Fehler vom catch gefangen werden kann. Das ist aber nicht der Fall, weil der try-catch-Scope nach dem Aufruf von setTimeout() verlassen wurde. Und er wird auch nicht wieder betreten, wenn die Zeit abgelaufen ist und die Callback-Funktion aufgerufen wird. Der Fehler kann also nicht vom nicht mehr existenten try-catch-Scope gefangen werden. Wenn man den Fehler fangen möchte, muss man einen try-catch-Block in den Callback schreiben. Damit ist er aber auch nicht mehr generell fangbar, sondern nur noch lokal.

dedlfix.