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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 书生灬流年 中级黑马   /  2015-2-13 07:21  /  1274 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我们都知道try中有return时和finally的执行顺序。那么如果finally中有return呢?程序还会不会返回执行try catch中的语句呢?答案是否定的。

7 个回复

倒序浏览
要是会的话那不就是一个死循环了吗?这点java应该考虑到了吧
回复 使用道具 举报

点评

这里有你要的答案~~  发表于 2015-2-13 13:09
回复 使用道具 举报
  1. public class Test {
  2.         public static void main(String[] args) {
  3.                 int a = 5;
  4.                 int b = 0;
  5.                 int c;
  6.                 try {
  7.                         System.out.println("异常发生之前");
  8.                         c = a/b;
  9.                         System.out.println("异常发生之后");
  10.                 } catch (Exception e) {
  11.                         System.out.println("catch块代码");// TODO: handle exception
  12.                 }finally{
  13.                         System.out.println("这是Finally块");
  14.                         return ;
  15.                 }
  16.         }
  17. }
复制代码


结果是
异常发生之前
catch块代码
这是Finally块
回复 使用道具 举报
你在catch中写return后还是会执行到finally,说明finally已经是最后了,你又到finally中写return那肯定也不会到前面去啊
回复 使用道具 举报
那是问什么呢?
回复 使用道具 举报
不会,finally中的return将catch块中的return覆盖了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马