2014-04-16 80 views
1

我正在将我的代码封装到try/catch块中,并且我决定对它进行测试以了解它是如何工作的。 下面是一个简单的代码片段,会产生一个语法错误 - trigge rHandlerJavaScript:Try/Catch - 我在这里做错了什么?

try{ 
    $(document).trigge rHandler('fbload'); 
}catch(e){ 
    alert(e); 
} 

不过我没有收到警报!相反,该错误作为未处理的语法错误记录在控制台中。我期待Try块中产生的任何错误会自动传递到Catch部分,我可以用它做任何事情?为什么这看起来不起作用?

+0

您无法处理语法错误。 –

回答

4

try..catch将捕获在运行时发生的异常。但语法错误发生在解析时间本身。所以,当代码

$(document).trigge rHandler('fbload'); 

遇到,JavaScript尝试解析表达式。但它不能。所以它是无法用语法错误立即失败,这就是为什么它不被except块捕获。

+1

...如果它们在使用'eval'运算符解析时不会发生。 – VisioN

+0

有什么方法可以捕捉这些类型的异常吗? – user1775598

+0

@ ^发明新浏览器的时间! :) –

相关问题