Java >> Java Tutorial >  >> Java

Wie man Ausnahmen in Javascript verkettet (dh Ursache wie in Java hinzufügt)

Im Moment (bis es eine bessere Antwort gibt) habe ich Folgendes getan:

...
} catch(e) {
  throw new Error("My error message, caused by: "+e.stack+"\n ------The above causes:-----")
}

Die Art und Weise, wie ich Ausnahmen drucke, lässt es schön und sauber aussehen:

console.log(e.stack)

gibt so etwas aus:

My error message: SomeError
<some line>
<more lines>
------The above causes:-----
<some line>
<more lines>

Die Zeile könnte besser sein, wenn sie "Ursachen" sagt, da der Stack-Trace der Ausnahme, die den Fehler verursacht, zuerst gedruckt wird.


Wenn Sie Node.js verwenden, können Sie VError

verwenden

Joyent hat auch eine Seite mit Best Practices für die Fehlerbehandlung in Node.js https://www.joyent.com/developers/node/design/errors

Die einzige Sache ist, dass ich nicht mag, wie Joyents Implementierung von VError umfällt, wenn Sie einen Nullwert oder undefinierte Parameter übergeben. Dies ist besonders wichtig, wenn Sie mit Fehlern umgehen, da dadurch nur die eigentliche Ursache des Problems verschleiert wird. Ich habe ihren VError gegabelt, damit er nicht mit null oder undefinierten Parametern fehlschlägt.https://github.com/naddison36/node-verror


In prod verwenden wir TraceError

Nutzung

import TraceError from 'trace-error';

global.TraceError = TraceError; // expose globally (optional)

throw new TraceError('Could not set status', srcError, ...otherErrors);

Ausgabe


Java-Tag