黑马程序员技术交流社区

标题: 如try中有return会不会执行finally 原因 [打印本页]

作者: likeermei    时间: 2013-11-22 00:54
标题: 如try中有return会不会执行finally 原因
如try中有return会不会执行finally里面的语句
今天看以个面试题里出现过    但是解释的不是很明白,求详解

作者: 汪洋大海    时间: 2013-11-22 01:05
就算有return,抛Runtime异常也会执行finally。finally主要就是关资源。这个是一定会执行的。
作者: likeermei    时间: 2013-11-22 01:11
汪洋大海 发表于 2013-11-22 01:05
就算有return,抛Runtime异常也会执行finally。finally主要就是关资源。这个是一定会执行的。 ...

顺序   求顺序的详解
作者: 简★零度    时间: 2013-11-22 01:12
  1. public class FinallyDemo2 {
  2. public static void main(String[] args) {

  3. int num = getNumber();
  4. System.out.println(num);
  5. }

  6. private static int getNumber() {
  7. int a = 10;
  8. try {
  9. a = 20;
  10. System.out.println(a / 0);
  11. } catch (ArithmeticException e) {
  12. a = 30;
  13. return a;//看到return后,就会在内存中形成一条返回路径,这个时候的值就是 return 30
  14. //但是,又看到了finally语句,所以就去执行了finally。
  15. //执行完毕finally后,就去把以前的返回路径继续走完。
  16. } finally {
  17. a = 40;
  18. //return a; //这是一条新的返回路径,return后是不能有东西执行的。
  19. }
  20. return a;
  21. }
  22. }你所说的面试题应该是这个!不是的话看看就可以了1
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2