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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 周斌 中级黑马   /  2012-11-2 17:45  /  1515 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 周斌 于 2012-11-3 15:14 编辑

public class ExceptionSilencer
{

public static void main(String[] args)
{
   throw new RuntimeException();
  }
}

这段小代码运行结果:见附图


public class ExceptionSilencer
{

public static void main(String[] args)
{
  try
  {
   throw new RuntimeException();
  }
  finally
  {
   return;
  }
}
}
为什么这样就没有运行的结果呢?finally一定会执行,那么为什么没有显示呢?

123.png (1.65 KB, 下载次数: 38)

123.png

评分

参与人数 1技术分 +1 收起 理由
谭立文 + 1

查看全部评分

5 个回复

倒序浏览
本帖最后由 李兆宁 于 2012-11-2 18:04 编辑

你想要什么结果呢,throw new RuntimeExcetioon
最后你return语句执行了,只是没什么结果,你可以换成打印语句就看出效果了
回复 使用道具 举报
你的finally代码块中没有内容,想让它输出什么?
回复 使用道具 举报
不会出现异常,你的那图看不懂。
测试了一下,根本不报异常,

finally语句运行到return直接返回了,不会抛出异常。
return放在finally中会造成异常丢失。
回复 使用道具 举报
李建强 发表于 2012-11-2 18:06
不会出现异常,你的那图看不懂。
测试了一下,根本不报异常,

为什么丢失了呢~
回复 使用道具 举报
周斌 发表于 2012-11-2 18:37
为什么丢失了呢~

finally中return结束了,没人抓取异常,想抓取用catch
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马