Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么当finally参与beanshell时,for循环的中断不起作用_Beanshell - Fatal编程技术网

为什么当finally参与beanshell时,for循环的中断不起作用

为什么当finally参与beanshell时,for循环的中断不起作用,beanshell,Beanshell,此代码: print(" - Start"); int[] num = new int[] {1,2,3,4,5,6,7,8,9,10}; for(int i : num) { print("--> "+ i); try { print(" . try"); if(i == 2) break; } catch (java.lang.Exception e) {} final

此代码:

print(" - Start");
int[] num = new int[] {1,2,3,4,5,6,7,8,9,10};
for(int i : num)
{
    print("--> "+ i);
    try
    {
        print("    . try");
        if(i == 2)
            break;
    }
    catch (java.lang.Exception e)
    {}
    finally
    {
        print("    . finally");
    }
}
print(" - End");
没有按预期工作。即,
中断
似乎不起作用。
有人能解释一下为什么会这样吗?

我想说这是一只豆沙虫。不是因为下面概述的原因(这些原因仅适用于Mac上的Java),而是因为如果在“经典”Java应用程序的主方法中放置相同的代码,则其行为方式不同。也就是说,中断条件起作用

以下内容仅适用于Mac上最新版本的Java。

我想这是一只豆沙虫。当我尝试将if更改为以下选项时,BeanShell挂断:

if(i == 2) {
    print("trying to break");
    break;
}
我强制关闭它,然后用命令行重新启动它。我看到以下错误:

$ java -jar bsh-2.0b4.jar 
java[1119] <Error>: CGContextGetCTM: invalid context 0x0
java[1119] <Error>: CGContextSetBaseCTM: invalid context 0x0
java[1119] <Error>: CGContextGetCTM: invalid context 0x0
java[1119] <Error>: CGContextSetBaseCTM: invalid context 0x0
$java-jar bsh-2.0b4.jar
java[1119]:CGContextGetCTM:无效的上下文0x0
java[1119]:CGContextSetBaseCTM:无效的上下文0x0
java[1119]:CGContextGetCTM:无效的上下文0x0
java[1119]:CGContextSetBaseCTM:无效的上下文0x0

也许我应该换一句话“beanshell死了吗?”……我也要换成“bug”。但这意味着什么?不要使用break-in-BeanShell还是不要使用BeanShell?上面的代码在Beanshell2()中运行良好-这只给我留下了一个结论:不要使用BeanShell(1)。。。。