【问题标题】:Error handling in Node.js for calling a function with wrong nameNode.js 中调用错误名称的函数的错误处理
【发布时间】:2015-12-06 13:17:49
【问题描述】:

我需要一个模块并将其保存在一个变量中。但是当我用错误的名称调用模块函数时,它不会抛出任何错误或控制台任何错误。如何使这个抛出错误?

            var module = require('../pre_process/' + preProcessFolder + '/' + preProcessModule);
            // module -> { XYZ: [Function] }
            //Following does not throw error and doesn't console anything.How to handle/debug this error  
            module['XY'](result, userId)
              .then(function(recData) {

              })

我正在使用 q 库来实现承诺。

【问题讨论】:

  • 整个代码本身是否在 promise 的 .then() 中?在这种情况下,它可能会抛出,但您可能没有.catch() 外面。 Checkout Bluebird promise 库,它非常适合自动记录此类未捕获的错误
  • @jondoe:我问自己,你想做什么,为什么?完全动态地包含一个模块对我来说毫无意义。

标签: node.js error-handling


【解决方案1】:

所以你想检查一个函数(由一个模块提供)是否存在。 你可以使用try,就像这里的例子: Javascript check if function exists

【讨论】:

  • 如果函数不存在并且我正在尝试调用它,它是否应该抛出一些错误?
  • @johndoe 所以即使在 try catch 内它也不会抛出?你真的确定它不存在吗?打电话之前可以console.log(typeof module['XY'])吗?
  • @jondoe:也许你可以像这里一样检查 typeof === "function":sitepoint.com/…
猜你喜欢
  • 1970-01-01
  • 2011-08-14
  • 1970-01-01
  • 1970-01-01
  • 2017-07-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-13
相关资源
最近更新 更多