首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

java在try,catch中return,在finally中也return会产生什么奇迹

2012-08-27 
java在try,catch中return,在finally中也return会发生什么奇迹?今天看到一个很基础的问题,如下:int g(){try

java在try,catch中return,在finally中也return会发生什么奇迹?

今天看到一个很基础的问题,如下:

int g(){try{return 1;}catch(Exception e){return 3;}finally{return 2;}}

?同样生成的字节码为:

??? int g();
? Code:
?? 0:?? goto??? 8
?? 3:?? astore_1
?? 4:?? goto??? 8
?? 7:?? pop
?? 8:?? iconst_2
?? 9:?? ireturn
? Exception table:
?? from?? to? target type
???? 0???? 3???? 3?? Class java/lang/Exception

???? 0???? 7???? 7?? any
程序进入方法g时,直接goto8,也就是iconst_2,ireturn直接返回了

?

?

总之:在try{...}catch(XX){...}finally{...}中,如果finally中return,那么try{..}以及catch{...}中的返回都被finally覆盖

热点排行