2016-11-06 71 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