A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 路飞 中级黑马   /  2015-4-28 11:37  /  1360 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

try{}里有一个 return 语句,那么紧跟在这个 try 后的 finally{}里的 code 会不会被执行,什么时候被执行,在 return 前还是后?

评分

参与人数 1技术分 +1 收起 理由
lwj123 + 1

查看全部评分

9 个回复

倒序浏览
  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是最后执行

评分

参与人数 1技术分 +1 收起 理由
lwj123 + 1

查看全部评分

回复 使用道具 举报
try中有return,finally也会执行。只要不是try中有System.exit(0)【系统退出】,finally就能执行。
回复 使用道具 举报
楼上正解
回复 使用道具 举报
finally 里的语句先执行,然互再回来执行try里面的return 语句
回复 使用道具 举报
会,后。
回复 使用道具 举报
ReadCode 发表于 2015-4-28 12:06
看这个,不管是程序运行停止还是什么,异常中的finally 中code是必要要执行的,至于在try中的return语句, ...

说的挺详细,多谢啦!
回复 使用道具 举报
1017161726 发表于 2015-4-28 13:05
try中有return,finally也会执行。只要不是try中有System.exit(0)【系统退出】,finally就能执行。 ...

好的,知道了,多谢啦!
回复 使用道具 举报
澂澂 发表于 2015-4-28 18:01
finally 里的语句先执行,然互再回来执行try里面的return 语句

好的,多谢啦!
回复 使用道具 举报

好的,多谢啦!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马