2016-11-06 7 views
0

В моем приложении Node.js я хочу поймать все необработанные ошибки и записать их в журнал.Ловля ошибок в Node.js

В настоящее время я обертываю каждый код точки с помощью блока try/catch, но это большая работа. Мне нужен способ, чтобы поймать все ошибки в одном месте, как Application_Error Global.asax в ASP.Net, поэтому вместо того, чтобы:

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

Это это один из способов сделать это, но я не думаю, что это солидные советы, рассматривающие ситуацию с ОП. См. «Предупреждение: использование« uncaughtException »правильно» https://nodejs.org/api/process.html#process_event_uncaughtexception – brk