2016-11-06 55 views
0

在我的Node.js应用程序中,我想捕获所有未处理的错误并将它们写入日志。在Node.js中捕获错误

目前我用try/catch块封装每个边缘点代码,但是这是很多工作。我需要一种方法来赶上在一个地方所有的错误,就像在ASP.Net在Global.asax的Application_Error,所以不是说:

function a(){ 
try{ 
var wrong = 3/0; 
} catch(err){ 
    console.log(err); 
} 
} 

function b(){ 
try{ 
var wrong = 3/0; 
} catch(err){ 
    console.log(err); 
} 
} 

function c(){ 
try{ 
var wrong = 3/0; 
} catch(err){ 
    console.log(err); 
} 
} 

我只会有这样的事情:

function a() { 
var wrong = 3/0; 
} 

function b() { 
var wrong = 3/0; 
} 

function c() { 
var wrong = 3/0; 
} 

function errorHandler(err) { 
console.log(err); 
} 

任何帮助将深深感激!

+2

的可能的复制[Node.js的最佳实践异常处理](http://stackoverflow.com/questions/7310521/node-js-best-practice-exception-handling) – FrankerZ

回答

1

您可以使用未捕获的异常从一个地方捕获所有错误。

process.on('uncaughtException', function (err) { 
    console.error((new Date).toUTCString() + ' uncaughtException:', err.message) 
    console.error(err.stack) 
    process.exit(1) 
}) 

https://shapeshed.com/uncaught-exceptions-in-node/

+0

这是这样做的一种方式,但考虑到OP的情况,我认为这不是可靠的建议。请参阅警告:正确使用'uncaughtException'https://nodejs.org/api/process.html#process_event_uncaughtexception – brk