Broswers& # 39;JS错误的处理
Broswers' Treatment of JS Errors
对于Javavscript中的以下代码:
// add HTML to container
// show the container on the DOM
// call a non-existent function on an object
我成功地看到Firefox和IE显示我的HTML。第三行代码显示了Firebug和IE中的JS错误,似乎被抑制/忽略了。
浏览器通常会忽略糟糕的JS吗?或者,假设我在第三行代码后面加上了alert("line 4");
。第4行会被忽略,因为JS的解释将结束在非法的JS代码行?
我在jsFiddle中测试了我的场景,但我不确定jsFiddle的行为是否与浏览器相同。
JavaScript引擎将执行代码,直到遇到异常。然后根据以下内容改变行为:
- 如果是在
try..catch
,执行将从catch
恢复,否则 - 如果异步调用,则此序列将在该点结束,但其他正在进行的序列将继续。(一个简单的例子是
window.setTimeout
) - 如果它直接在
<script>
中,则<script>
中从该点开始的其余代码将不执行,但<script>
之后的代码将执行。
如果异常发生在被提升的内容中,则认为执行点在第0行。
您可以使用throw
关键字轻松测试所发生的情况。例如
console.log(1); // logs
console.log(2); // logs
throw 'eep';
console.log(4); // does not log
相关文章:
- javascript:如何在antlr生成的Lexer中进行错误处理
- 生成pdf或其他非html文件时的错误处理
- sailsjs在创建两个模型时的错误处理
- 为什么没有调用我的流错误处理程序
- 错误处理try&catch+回调
- EventSource中的错误处理
- Angular JS中的通用Ajax错误处理-拦截器
- Sinon Mocha节点错误处理
- 如果文件不存在,fs.watch是否有错误处理程序
- Javascript初始化和错误处理
- AngularJS错误处理:根据错误数组显示错误
- JQuery 图像错误处理
- BreezeJS中央错误处理程序和自动重试
- 文件下载html与错误处理FileNotFound
- 使用mongoose保存多个文档时的错误处理
- Node.js如何知道回调的第一个参数是否是错误处理程序
- Meteor JavaScript-错误处理
- AJAX自定义错误处理代码问题
- 正在获取丢失的错误处理程序套接字消息,无法读取属性'timerID'使用Node.js和Socket.i
- 为什么不't JavaScript库使用错误处理