【问题标题】:if (error) throw error d3 js如果(错误)抛出错误d3 js
【发布时间】:2018-09-24 23:12:57
【问题描述】:

我在 d3.js 文档的每个示例中都经常看到这一点。 This treemap example 也有:

d3.json("flare.json", function(error, data) {
    if (error) throw error;

    var root = d3.hierarchy(data)
        .eachBefore(function(d) { d.data.id = (d.parent ? d.parent.data.id + "." : "") + d.data.name; })
        .sum(sumBySize)
        .sort(function(a, b) { return b.height - a.height || b.value - a.value; });

    //and so on

我假设它会帮助处理错误,但是,我尝试使用没有值的json file,但仍然收到错误:d3.v4.min.js:2 错误:属性转换:尾随垃圾,“翻译(0,NaN)”

【问题讨论】:

  • 出现在许多 d3 示例中的这一行几乎总是出现在 d3.json 或 d3.csv(加载文件的方法)下方 - 它会告诉您加载文件时的错误,而不是其他部分的错误您的代码,例如不是数字 (NaN) 错误。您的错误来自您传递 d3 的内容,这就是为什么错误出现在 d3.v4.min.js 中的一行而不是 if(error) throw error; 的行中。

标签: javascript d3.js


【解决方案1】:

使用throw 关键字引发错误只是意味着您可以定义一个错误,它不像try/catch。看看这个:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/throw

【讨论】:

  • 我仍然不明白那一行代码if (error) throw error; 会以何种方式做出贡献。
  • 好吧,如果您知道有可能发生错误,那么以对调试最有意义的方式显示该错误会更有帮助,而不是让它失败并显示一些可能不太有用的 js 错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-10
  • 2016-05-02
  • 2018-11-15
相关资源
最近更新 更多