2011-11-20 52 views
0

我注意到catch(e){}會抑制從函數綁定ready()事件拋出的錯誤。在流動的例子,沒有錯誤拋出:jquery ready抑制錯誤

<script type="text/javascript"> 
    jQuery(document).ready(function() { 
     nosuchobject.fakemethod();  //intentionally cause major error 
    }); 
</script> 

我可以用我自己的try-catch塊周圍的工作吧。但我的問題是爲什麼錯誤首先被壓制?我的解決方法是最佳解決方案嗎?

+2

這不是我在jQuery 1.7中的情況; http://jsfiddle.net/y98Qu/。你在看什麼版本? – Matt

+0

請將答案除外... – Yacov

+0

您正在使用哪種瀏覽器?當我在Chrome中嘗試Matt的jsfiddle時沒有發生任何事情 - 沒有錯誤報告。但是,當我打開控制檯,然後我得到參考錯誤「nosuchobject沒有定義」。 – nnnnnn

回答

-1

最簡單的方法是使用try/catch塊:

jQuery(document).ready(function() { 
     try { 
     nosuchobject.fakemethod(); 
     } catch (ex) { 
     //do something with ex object 
     } 
    }); 

在這種情況下,你可以處理所有的錯誤及根據問題的性質,你可以決定如何解決/避免這種錯誤情況。