黑马程序员技术交流社区
标题:
异常的小return 和final问题
[打印本页]
作者:
人心如水
时间:
2014-6-14 12:00
标题:
异常的小return 和final问题
用代码证明,在try中写了return,后面又写了finally,是先执行return还是先执行fianlly? 自己很糊涂
作者:
倪大大
时间:
2014-6-14 12:20
finally是一定要执行的.不管怎么样,他会覆盖你try中的return
作者:
人心如水
时间:
2014-6-14 13:21
谁先执行啊,要的就是执行顺序的证明
作者:
博€$€海
时间:
2014-6-14 14:05
最后执行fianlly,return可能会被覆盖掉
作者:
雾里看花。
时间:
2014-6-14 21:03
最后执行fianlly,return可能会被覆盖掉
作者:
轩辕冰晨
时间:
2014-6-14 21:17
应该是先执行return 的吧,fianlly中的代码不管如何最后都是要执行的
作者:
2528870651
时间:
2014-6-14 21:19
自己运行这个代码试试:
class ExceptionTest
{
public static void main(String[] args)
{
int n = fun(2);
System.out.println("打印fun()函数返回的n值= "+n);
}
public static int fun(int i)
{
try
{
int m= i/0;
return i++;
}
catch (ArithmeticException e)
{
System.out.println("异常信息:"+e);
System.out.println("catch 中的i = "+i);
return i+3; //返回的是 2+3, 而不是finally中对i的赋值再来加上3,
//finally中对i的操作,不会影响此时catch中的return i+3
}
finally
{
i++;
i++;
System.out.println("finally 执行 "+i);
//return i+8; //如果这里没注释
//这里会返回12,而不会去返回catch中的 return i+3
}
}
}
复制代码
作者:
人心如水
时间:
2014-6-14 21:29
2528870651 发表于 2014-6-14 21:19
自己运行这个代码试试:
万分感谢
作者:
2528870651
时间:
2014-6-14 22:33
人心如水 发表于 2014-6-14 21:29
万分感谢
我以前问过这个问题的
作者:
孙林
时间:
2014-6-14 22:48
fanally是一定会执行的,return就不一定了,要看你程序有没有跳进你的return里。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2