使用cytoscape.js处理错误

时间:2017-09-16 18:17:47

标签: cytoscape.js

我正在构建一个网站,用户将输入图形数据,然后使用cytoscape.js进行渲染。

鉴于这是由用户数据支持的,可能存在他们放入无效数据的情况,特别是缺少目标的边缘。我想捕获这些数据并将其呈现给用户,以便他们可以修复错误。

目前,我在日志中收到此错误,但我无法弄清楚如何捕获数据。

Can not create edge `TableOfBooks>att` with nonexistant target `att`

我尝试在try ... catch ...块中包装cytoscape构造函数,但它似乎没有捕获错误。

try {
  var cy = cytoscape(...);
} catch(err) {
  console.log("ERROR: " + err);
}

如何捕捉这些错误?

1 个答案:

答案 0 :(得分:1)

这只是控制台中的一个警告。 Error类型也不例外。通常,Cytoscape不会为无效的图形JSON抛出异常。它包含有效的条目,它会向您发出有关无效条目的警告,并且它会继续存在,以便开发人员进行检查。

Cytoscape必须吸引几个团体,包括缺乏经验的科学家和经验丰富的程序员。我们发现,如果小图JSON错误出现异常,那么科学家就会轻易放弃该工具。所以例外是不可能的。

如果你真的想要抛出异常,你可以考虑添加一个togglable标志,用于警告是否在PR中抛出异常。截至今天,所有这些邮件都会在error()中通过warning()/util,因此您可以在那里添加投放。

Cytoscape不进行用户输入验证。这通常取决于应用程序,特别是因为它可能包含业务逻辑。