Javascript生成器捕获错误

时间:2016-06-25 05:38:16

标签: javascript error-handling ecmascript-6 koa

我在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库中的一个例外。如何确保捕获这些异常而不是崩溃整个应用程序?

1 个答案:

答案 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
});