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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 岳民喜 黑马帝   /  2012-3-27 09:54  /  1874 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 岳民喜 于 2012-3-27 10:04 编辑
  1. class Demo
  2. {       
  3.         public static void func()
  4.         {
  5.                 try
  6.                 {
  7.                         throw  new Exception();
  8.                         System.out.println("A");
  9.                 }
  10.                 catch(Exception e)
  11.                 {
  12.                         System.out.println("B");
  13.                 }
  14.         }
  15.         public static void main(String[] args)
  16.         {
  17.                 try
  18.                 {
  19.                         func();
  20.                 }
  21.                 catch(Exception e)
  22.                 {
  23.                         System.out.println("C");
  24.                 }
  25.                 System.out.println("D");
  26.         }
  27. }
  28. //编译失败。 因为打印“A”的输出语句执行不到。

  29. :throw单独存在,下面不要定义语句,因为执行不到。
复制代码
那如果我把System.out.println("A");注释掉//System.out.println("A");
编译会成功吗,那程序执行结果又会是什么,视频里面没讲,是否是B D?

2 个回复

倒序浏览
在try中遇到异常程序就转到catch块中执行了,lz这个输出语句放在throw  new Exception();后

永远不会被执行到,所以报错。可以把System.out.println("A");放前面试试。
回复 使用道具 举报
试了下,注释掉System.out.println("A");编译成功,打印结果为B,D
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马