未捕獲Typerrors收到以下錯誤追趕的Javascript
Uncaught Typerror : Cannot read property 'foo' of undefined
出錯行是
s2 = targets[j].foo*4;
很顯然,我應該可以解決問題的根源,但在此期間,我怎樣才能正確地包裹有問題的行,所以它不會拋出一個錯誤,並打破我的應用程序?
未捕獲Typerrors收到以下錯誤追趕的Javascript
Uncaught Typerror : Cannot read property 'foo' of undefined
出錯行是
s2 = targets[j].foo*4;
很顯然,我應該可以解決問題的根源,但在此期間,我怎樣才能正確地包裹有問題的行,所以它不會拋出一個錯誤,並打破我的應用程序?
在try catch中包裝代碼可以讓你處理這樣的問題。
try {
s2 = targets[j].foo * 4;
} catch (exception) {
console.error(exception.stack);
}
而不是
Uncaught ReferenceError: targets is not defined
(因爲我甚至不具有既定目標),我現在得到
ReferenceError: targets is not defined
at snippets:///424_2145:2:10
但你說的沒錯,你應該找到問題的根源。
錯誤的可能原因是該特定索引的targets[j]
爲空。
試試這個
s2 = targets[j] && targets[j].foo ? targets[j].foo * 4 : 0;
這裏您可以S2的值設置爲默認值(我將其設置爲0),如果targets[j]
爲空或未定義。
再次,這隻會解決症狀,而不是問題的根源。