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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

杨颖

注册黑马

  • 黑马币:

  • 帖子:

  • 精华:

© 杨颖 注册黑马   /  2012-7-4 15:06  /  1436 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 杨颖 于 2012-7-4 15:48 编辑

小妹刚自学Java,零基础,刚看到这个程序,为啥输出的结果是Finally而不是什么都不输出呢??谁给解释下?
public class Test{
    public static void main(String args[]){
    try{return;}
    finally{ System.out.println("Finally");}
    }
    }

点评

建议这位同学将代码缩进写好,不要一团糟,这样才方面其他同学回答你的问题。同时工整的代码也利于技术分的获取。  发表于 2012-7-5 00:54

2 个回复

倒序浏览
try-catch-finally语句的问题。程序中如果遇到return,则finally语句块先被执行,然后再执行retrun,而finally块后面的语句将不被执行。如果遇到System.exit(1),则finally块及其后的语句都不执行,整个程序退出。

评分

参与人数 2技术分 +1 黑马币 +2 收起 理由
蒋映辉 + 1
杨颖 + 2 谢谢啦!

查看全部评分

回复 使用道具 举报
try catch finally模块是比较特殊的,虽然在c语言中我们一遇到return就退出这次循环,但是在java里面finally是必须被执行的语句,
也就是说无论前面写了什么,这句话是一定会执行的。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马