finally总是最后执行,因此该语句x = 3应该最后执行。但是,运行此代码时,返回的值为2。
为什么?
class Test {
public static void main (String[] args) {
System.out.println(fina());
}
public static int fina()
{
int x = 0;
try {
x = 1;
int a = 10/0;
}
catch (Exception e)
{
x = 2;
return x;
}
finally
{
x = 3;
}
return x;
}
}
Run Code Online (Sandbox Code Playgroud)