break和continue语句最终导致了Nashorn中的块执行
break and continue statements are causing finally block execution in Nashorn
我很困惑为什么finally
在break
/continue
(版本:Java 8更新5)之后被执行
testTryFinally();
function testTryFinally()
{
try
{
print("Try 1");
for(var i = 0; i < 2; i++)
{
break;
}
print("Try 2");
}
finally
{
print("Finally executed");
}
}
执行:.../tmp>jjs test.js
break
:
Try 1
Finally executed
Try 2
Finally executed
用continue
代替break
的输出
Try 1
Finally executed
Finally executed
Try 2
Finally executed
我已经尝试在浏览器中执行相同的代码(用console.log()
替换print()
输出与Firebug
中的预期一致Try 1
Try 2
Finally executed
我在这里找到了相关的语句:
. .虽然
finally
总是被执行,但try
中的某些语句,如continue
,break
,return
,或者当发生错误并且没有catch子句时,都将导致finally
紧随其后立即执行. .
但是我没有看到这在Firefox中发生(可能有一个很好的理由)
在Java 8u60中修复,将于2015年7月14日发布https://wiki.openjdk.java.net/pages/viewpage.action?pageId=22937606
相关文章:
- 无法在通过jQuery的ajax加载的页面中执行javascript
- JavaScript执行暂时挂起页面
- 如何在ReactJS JSX中执行嵌套的if-else语句
- 当js函数's已执行
- 哪个先执行
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- HTML表单提交时未执行外部函数
- 在Safari执行javascript之前对其进行修改
- Amd,希望确保某个东西总是最后执行
- 在Windows 10中自动执行例行程序(主要与浏览器交互)
- 递归使用 eval() 是检查程序执行的好方法吗?
- 如何做到这一点,使代码在不传递条件后执行函数
- 如何在执行此特定onclick事件时执行JavaScript函数
- 如何在从浏览缓存加载页面时执行javascript
- Jquery表单验证插件-如果选中复选框,如何在提交时执行某些操作
- Jquery:代码在rails中的页面加载时未执行
- 如何防止jQueryonclick事件中的Ruby方法在页面刷新时执行
- 在Nashorn中执行javascript时未发现文件异常
- 在Nashorn中的特定上下文中执行函数
- break和continue语句最终导致了Nashorn中的块执行