node.js uncaughtException のスタック トレースをキャッチしようとしていますが、さまざまなエラーでは正常に機能しますが、throw() ステートメントでは機能しません。
例外処理のスタック トレースを修正します。
$ cat errorFunc.js
process.on('uncaughtException', function(exception) {
console.log('uncaughtException occurred: ' + exception.stack);
});
MyError();
$ node errorFunc.js
uncaughtException occurred: ReferenceError: MyError is not defined
at Object.<anonymous> (/home/jolcese/code/WebEnclaves/Server/errorFunc.js:5:1)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:901:3
$
throw() が原因で発生した例外のスタック トレースがありません:
$ cat errorThrow.js
process.on('uncaughtException', function(exception) {
console.log('uncaughtException occurred: ' + exception.stack);
});
throw('my error');
$ node errorThrow.js
uncaughtException occurred: undefined
$
理由はありますか?
ありがとうホセ
免責事項: process.on('uncaughtException') を使用することは非常に悪いことであり、罰せられることはわかっていますが、このコードではドメインを使用することはできません。