执行下列代码的输出结果是( )
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) {
}
catch(Exception e2) {
}
finally {
b += 10;
return b;
}
}
}
解析:
如果finally块中有return语句的话,它将覆盖掉函数中其他return语句:
程序运行到 try块,b=20;并没有发生异常,不运行catch块,运行到return b;因为finally块无论如何都要运行,因此并不发生返回动作,进行运行finally块,b=30;
进行程序返回输出;