在我的应用程序中,我想创建自己的模块以使用uncaughtException捕获我的应用程序错误。如果我在同一模块中创建uncaughtException意味着它捕获错误但是如果我在单独的模块中创建了uncaughtException。然后调用该模块意味着它不捕获错误任何人都可以帮我解决这个问题。
module1.js
var errorModule=require('./module2');
var err = new Error('Something went terribly wrong');
errorModule.captureError(err);
module2.js
module.exports.captureError=function(err){
process.on('uncaughtException', function(err) {
console.log(err);
});
}
答案 0 :(得分:0)
试试这个:
// module1.js
var errorModule=require('./module2');
errorModule.captureErrors();
throw Error('Something went terribly wrong');
// module2.js
module.exports.captureErrors = function() {
process.on('uncaughtException', function(err) {
console.log('an error occurred', err);
});
};
需要注意的一些事项:
process.on('uncaughtException', ...)
安装一个事件处理程序来捕获未捕获的异常;你的代码试图向它传递错误,但这似乎打败了你正在写的东西('使用uncaughtException捕获我的应用程序错误'); throw Error(...)
); 如果您希望 module1
中的代码有效,module2
需要如下所示:
module.exports.captureError = function(err) {
console.log(err);
};
但这与uncaughtException
无关。