2017-09-16 58 views
0

我正在建立一個網站,用戶將輸入圖形數據,然後用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); 
} 

我該如何去捕捉這些錯誤?

回答

0

這只是控制檯中的警告。它不是一個例外,類型爲Error。一般來說,Cytoscape不會爲無效圖JSON拋出異常。它包含有效的條目,它會警告你有關無效的條目,並繼續進行,因此有必要由開發人員進行檢查。

Cytoscape不得不呼籲幾個團體,包括沒有經驗的科學家和有經驗的程序員。我們發現,如果科學家得到一個小圖JSON錯誤的例外,他們會輕易放棄該工具。所以例外是一個不起眼的東西。

如果你真的想拋出異常,你可以考慮添加一個可觸發標誌來判斷警告是否在PR中拋出異常。截至今天,所有這些消息都通過error()warning()/util,所以你可以添加扔在那裏。

Cytoscape不會執行用戶輸入驗證。這通常取決於應用程序的執行情況,尤其是因爲它可能包含業務邏輯。

+0

謝謝。我已經通過graph.js首先運行所有東西,以實際捕獲圖形並執行週期檢測等,然後導出頂點和邊以供細胞視圖使用。這至少解決了我的使用案例。 – Syddraf