Wie kann ich Fehler in einer async
Funktion geworfen fangen. Wie in meinem Beispiel unten:nodejs - Catch Fehler auf jeder tieferen Ebene
I) Arbeitsbeispiel (Error abfangbar)
(async() => {
try {
// do some await functions
throw new Error("error1")
}
catch(e) {
console.log(e)
}
})()
Console
Error: error1
at __dirname (/home/test.js:25:11)
at Object.<anonymous> (/home/quan/nodejs/IoT/test.js:30:3)
at Module._compile (module.js:624:30)
at Object.Module._extensions..js (module.js:635:10)
at Module.load (module.js:545:32)
at tryModuleLoad (module.js:508:12)
at Function.Module._load (module.js:500:3)
at Function.Module.runMain (module.js:665:10)
at startup (bootstrap_node.js:201:16)
at bootstrap_node.js:626:3
II) Aber wenn ich try-catch
außerhalb von async
setzen, wird die Ausnahme uncatchable, wie unten:
try {
(async() => {
throw new Error("error1")
})()
}
catch(e) {
console.log(e)
}
Konsole:
Gibt es eine Möglichkeit, Fehler von async
, wie in II gezeigt, zu fangen?
Ich muss darum bitten, meinen Code zu vereinfachen, der viele switch-case
enthält und ich möchte nicht try-catch
in jedem switch-case
behandeln.
Grüße,