我在Javascript中使用ES6 generators并试图解决如何处理我正在使用的库所引发的错误。以下是代码段:
const feedParser = require('co-feedparser');
try {
const meta = yield feedParser(url);
return meta.articles;
} catch(e) {
logger.error(e);
}
正在使用的库是co-feedparser,它是feedparser库的共同包装器。当传递的URL具有有效的RSS源时,该库运行良好。但是,只要传递了无效的RSS url feed,而不是捕获异常,应用程序就会崩溃并转储
/node_modules/co-feedparser/node_modules/feedparser/main.js:332
this.stack[0][stdEl] = n;
^
TypeError: Cannot assign to read only property 'feed' of false`
我认为这是feedparser库中的一个例外。如何确保捕获这些异常而不是崩溃整个应用程序?
答案 0 :(得分:0)
co-feedparser
似乎是一个问题,因为没有正确的错误处理。特别是在从给定URL创建新请求流并将流传输到Feedparser
时。
虽然它不是一个完美的解决方案。但是您可以使用以下内容在一个地方捕获应用程序范围的错误。
process.on('uncaughtException', function(err){
console.error('uncaughtException: ' + err.message);
console.error(err.stack);
process.exit(1); // exit with error
});