黑马程序员技术交流社区

标题: 一个程序的问题 [打印本页]

作者: 岳民喜    时间: 2012-3-27 09:54
标题: 一个程序的问题
本帖最后由 岳民喜 于 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?


作者: 杨波    时间: 2012-3-27 10:10
在try中遇到异常程序就转到catch块中执行了,lz这个输出语句放在throw  new Exception();后

永远不会被执行到,所以报错。可以把System.out.println("A");放前面试试。
作者: izwj    时间: 2012-3-27 10:11
试了下,注释掉System.out.println("A");编译成功,打印结果为B,D





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2