执行下列代码的输出结果是?
public class Demo {
public static void main(String args[]) {
int num = 10;
System.out.println(test(num));
}
public static int test(int b) {
try {
b += 10;
return b;
} catch (RuntimeException e) {
} finally {
b += 10;
return b;
}
}
}
A)、10
B)、20
C)、30
D)、40
考点:考察求职者对return的理解 出现频率:★★★★★
【面试题解析】
如果finally语句块中没有return语句,则返回20,因为finally在return语句之前执行,不能通过在return中重新赋值改变返回值。
如果finally中有有return语句,则会覆盖try语句块中的返回值,故为30.
所以参考答案是(C)