我正在使用第三方库,它执行一些异步操作但需要尝试捕获错误。它没有回调,也没有异步功能的承诺。有谁知道任何库或捕获这些错误的方法?我正在尝试这样做。
var asyncLib = require( 'asyncLib' );
try {
asyncLib.doSomething();
} catch( e ) {
//I want to catch if doSomething throws some error
// But it doesn't because it's using async resources.
}
答案 0 :(得分:2)
如果您想要处理通过常规渠道未发送给您的错误,您可以尝试在域中运行代码。这样可以捕获未处理的错误事件:
var d = require('domain').create();
d.on('error', function(err) {
console.error(err.stack);
});
d.run(function() {
yourCode();
});
或者,如果这是域错误处理无法解决的问题:
process.on('uncaughtException', function (err) {
console.error(err.stack);
});
当然,你不会像我的例子那样只是记录和继续,但是你得到了照片。