此代码:
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");
无法按预期工作。即break
似乎不起作用。
任何人都可以解释为什么会这样吗?
答案 0 :(得分:1)
我要说这是一个BeanShell错误。不是出于下面列出的原因(那些仅适用于Mac上的Java),但是因为如果将相同的代码放在“经典”Java应用程序的main方法中,它的行为方式不同。也就是说,休息条件有效。
以下内容仅适用于Mac上最新版本的Java。
我认为这是一个BeanShell错误。当我尝试将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