java中的try{}catch(E){}

刚刚看到一个问题:
try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?

特意写了下面的代码调试了一下,发现了一个奇特的现象:

public static void main(String a[]){
System.out.println(new Main().testTry());
}

public String testTry(){
String a="0";
//可以注释相应的return语句,看看效果
try {
a+="1";
return a;
} catch (Exception e) {
// TODO: handle exception
a+="2";
return a;
}finally{
a+="3";
return a;
}
}

其中,有点不明白的是,为啥会是"013"呢?立刻从网络中寻找答案,找到一篇文章:

Java 中的finally你知多少?  

对这个现象有同样疑问的,建议好好看看

» 转载保留版权:《java中的try{}catch(E){}》
» 本文链接地址:https://www.xidige.com/212

打开支付宝扫一扫,即可进行扫码打赏哦

扫码支持
扫码打赏,你说多少就多少

标签:

分享到:

扫一扫 在手机阅读、分享本文

上一篇: 下一篇:
评论区0人评论155人参与

电子邮件地址不会被公开。 必填项已用*标注

*

loading

赞助商广告