给出以下代码:
String test() { try { return "1"; } finally { return "2"; } }
语言规范是否定义了对的调用的返回值test()?换句话说:每个JVM是否总是相同?
test()
在Sun JVM中,返回值为2,但是我想确定这与VM无关。
2
是的,语言规范定义结果为“ 2”。如果VM采取不同的方式,则不符合规范。
大多数编译器都会对此抱怨。以Eclipse为例,它将声称永远不会执行return块,但这是错误的。
编写这样的代码是非常糟糕的做法,永远不要这样做:)