catch中return语句的执行时间
先考虑以下一个普通的示例:
public static int main() {
System.out.println("没有参数的main方法");
try{
a=4/0;
}catch(Exception e){
return ++a;
}
finally{
a++;
System.out.println("在finally中成功捕获异常!"+a);
}
System.out.println("成功捕获异常!"+a);
return 1;
}
public static void main(String[] string) {
System.out.println(main());
System.out.println("此时a的值为:"+a);
}
这段代码执行以后就是:
没有参数的main方法
在finally中成功捕获异常!2
1
此时a的值为:2
从执行结果可以看到,finally语句块必然会执行。而且根据执行的结果可以看到,finally块的执行时间恰好在return 语句中的表达式语句之后(++a后).等finally语句最终执行完成,再最后执行return语句。也就是说finally语句块虽然一定会被执行,但是它却不能影响return语句表达式的值了。
Date: 2012-10-08 21:00:46 中国标准时间
Author: csophys
Org version 7.8.11 with Emacs version 24
Validate XHTML 1.0
Original: https://www.cnblogs.com/csophys/archive/2012/10/08/2715785.html
Author: csophys
Title: catch中return语句的执行时间
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/713435/
转载文章受原作者版权保护。转载请注明原作者出处!