我正在构建一个网站,用户将输入图形数据,然后使用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);
}
如何捕捉这些错误?
答案 0 :(得分:1)
这只是控制台中的一个警告。 Error
类型也不例外。通常,Cytoscape不会为无效的图形JSON抛出异常。它包含有效的条目,它会向您发出有关无效条目的警告,并且它会继续存在,以便开发人员进行检查。
Cytoscape必须吸引几个团体,包括缺乏经验的科学家和经验丰富的程序员。我们发现,如果小图JSON错误出现异常,那么科学家就会轻易放弃该工具。所以例外是不可能的。
如果你真的想要抛出异常,你可以考虑添加一个togglable标志,用于警告是否在PR中抛出异常。截至今天,所有这些邮件都会在error()
中通过warning()
或/util
,因此您可以在那里添加投放。
Cytoscape不进行用户输入验证。这通常取决于应用程序,特别是因为它可能包含业务逻辑。