2011-11-20 69 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 
     } 
    }); 

在这种情况下,你可以处理所有的错误及根据问题的性质,你可以决定如何解决/避免这种错误情况。