黑马程序员技术交流社区

标题: 异常处理 [打印本页]

作者: 路飞    时间: 2015-4-28 11:37
标题: 异常处理
try{}里有一个 return 语句,那么紧跟在这个 try 后的 finally{}里的 code 会不会被执行,什么时候被执行,在 return 前还是后?
作者: ReadCode    时间: 2015-4-28 12:06
  1. class TryCatch
  2. {
  3.         public static void main(String[] args) throws Exception
  4.         {
  5.           try{
  6.                     
  7.                  String m=  show("张三");
  8.                  System.out.println(m);
  9.                   }
  10.          
  11.           catch(Exception e)
  12.           {
  13.                   throw new Exception("异常处理");
  14.           }
  15.           finally{
  16.                   System.out.println("Hello World!");
  17.           }
  18.                
  19.         }
  20.         public static String show(String name)
  21.         {
  22.                
  23.                 return name;
  24.         }
  25. }

复制代码

看这个,不管是程序运行停止还是什么,异常中的finally 中code是必要要执行的,至于在try中的return语句,如果有返回的具体值,那么它是先执行然后在执行finally,在异常中要记住,无论是try,catch,finally还是try,catch;try,finally,都是要先try的finally是最后执行
作者: 1017161726    时间: 2015-4-28 13:05
try中有return,finally也会执行。只要不是try中有System.exit(0)【系统退出】,finally就能执行。
作者: 只吃饭不洗碗    时间: 2015-4-28 13:55
楼上正解
作者: 澂澂    时间: 2015-4-28 18:01
finally 里的语句先执行,然互再回来执行try里面的return 语句
作者: 周飞飞    时间: 2015-4-28 18:07
会,后。
作者: 路飞    时间: 2015-5-1 09:52
ReadCode 发表于 2015-4-28 12:06
看这个,不管是程序运行停止还是什么,异常中的finally 中code是必要要执行的,至于在try中的return语句, ...

说的挺详细,多谢啦!
作者: 路飞    时间: 2015-5-1 09:55
1017161726 发表于 2015-4-28 13:05
try中有return,finally也会执行。只要不是try中有System.exit(0)【系统退出】,finally就能执行。 ...

好的,知道了,多谢啦!
作者: 路飞    时间: 2015-5-1 09:59
澂澂 发表于 2015-4-28 18:01
finally 里的语句先执行,然互再回来执行try里面的return 语句

好的,多谢啦!
作者: 路飞    时间: 2015-5-1 10:00
只吃饭不洗碗 发表于 2015-4-28 13:55
楼上正解

好的,多谢啦!




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