2009-12-04 67 views
0

我覺得這很愚蠢,我一定會錯過一些明顯的東西。爲什麼我的JavaScript Catch塊不能執行?

我的JavaScript看起來如下...

function onNewItemClick(event) 
{ 
    alert('ello!'); 
    try 
    { 
     var xx = 111/0; 
    } 
    catch(exc) 
    { 
     alert('fff'); 
    } 
} 

警報( 'ELLO!')就像它應該,但在catch塊警報( 'FFF')不會被調用。我在這裏做錯了什麼?

回答

7

捕捉不執行,因爲除零不會引起異常,它只會將您設置爲xx變量爲Infinity

要檢查數量是有限的,你可以使用isFinite功能:根據瀏覽器

if (!isFinite(xx)) { 
    //... 
} 
+0

或者爲未定義。 – jitter 2009-12-04 16:09:23

+0

呵呵,這就是當.NET迷們冒險進入javascript世界時發生的事情:)謝謝! – willem 2009-12-04 16:12:14

+0

@ willem:不客氣!@ @ jitter:這種行爲非常標準(參見ECMA-262 Section * 11.5.2 *)http://is.gd/5clge(PDF) – CMS 2009-12-04 16:14:40

相關問題