2013-07-21 50 views
1

我寫了一個小功能繪圖儀,根據用戶輸入爲參數曲線設置動畫。但是,可以輸入導致+ -infinity或NaN的值。在這種情況下,d3會拋出一個解析錯誤。如何處理d3.js解析錯誤?

有沒有辦法「抓住」這個錯誤,可以這麼說,並向用戶顯示一條消息?在try/catch中圍繞我的函數是行不通的,因爲它不是一個真正的例外,它不能繪製路徑 - 因此解析錯誤。

我希望能夠在發生這種情況時向用戶顯示消息。

http://candpgeneration.com/toys/d3/plotter5.html

所有JS是在源。如果輸入類似x = 10/t的東西,它會嘗試除以0,並且在控制檯中可以看到以下錯誤:「錯誤:解析d =」MNaN ...的問題「

回答

0

您可以嘗試使用測試值評估用戶提交的表達式,並在繪製圖表之前捕獲可能的異常。爲進行評估,您可能希望使用外部庫,如this,因爲本機eval()函數存在安全問題。

+0

我已經評估表達式,我希望避免在每次計算時檢查NaN或無窮大,因爲可能有數千個數字需要檢查,但我會嘗試一下,看看它是否會減慢速度。 – user803592