Можно ли установить глобальный обработчик исключенных исключений в Meteor?
Я хотел бы поймать исключенные исключения в Метеор и обработать их изящно. Есть ли аналог Node process.on('uncaughtException', function(err) {})?
Меня интересуют решения как на клиенте, так и на сервере.
Ответ 1
Я тестирую эту идею для обработки исключенных исключений на стороне сервера.
Fiber = Npm.require('fibers');
process.on('uncaughtException', function(err){
console.log(err.message);
console.log(err.stack);
Fiber( function(){
Logs.insert({ ... }) // Logs is a collection
}).run();
process.exit(1)
};
Ответ 2
Я тоже боролся с этим, в конечном итоге переопределив различные методы консоли, так как я могу жить без stacktraces. Ошибки отображаются в окне консоли, поэтому это делает трюк для меня. process.on('uncaughtException',...) не работает с Meteor, и по какой-то странной причине они не дают никакой приятной альтернативы.
Эта небольшая библиотека помогла мне многое, использовать ее или попробовать посмотреть исходный код - очень короткий и точный.