黑马程序员技术交流社区
标题:
求解释代码,哎,各种看不懂
[打印本页]
作者:
祁振朋
时间:
2013-3-19 00:49
标题:
求解释代码,哎,各种看不懂
本帖最后由 祁振朋 于 2013-3-19 18:05 编辑
class Demo
{
public static void main(String[] args)
{
try
{
showExce();
System.out.println("A");
}
catch(Exception e)
{
System.out.println("B");
}
finally
{
System.out.println("C");
}
System.out.println("D");
}
public static void showExce()throws Exception
{
throw new Exception();
}
}
复制代码
求解释最后结果,为什么是这个结果
作者:
全超
时间:
2013-3-19 01:06
结果应该是B,C,D
class Demo
{
public static void main(String[] args)
{
try
{
showExce(); //这个方法会抛出异常,这里转到下面Catch
System.out.println("A");
}
catch(Exception e)//这里捕捉到异常并处理打印B
{
System.out.println("B");
}
finally
{
System.out.println("C");//finally里面存放的是一定会执行的代码打印C,D
}
System.out.println("D");
}
public static void showExce()throws Exception
{
throw new Exception();
}
}
作者:
汪平乐
时间:
2013-3-19 08:53
本帖最后由 汪平乐 于 2013-3-19 08:55 编辑
我调整了代码的格式,方便阅读,答案是B,C,D
class Demo
{
public static void main(String[] args)
{
try
{
showExce(); //先执行showExce方法,但此方法抛出了一个新异常,所以跳过了下面的语句,JVM不执行SOP(A);
System.out.println("A");
}
catch(Exception e) //接着执行此语句,显示B
{
System.out.println("B");
}
finally //然后执行,显示C,finally在异常中是一定执行的语句;
{
System.out.println("C");
}
System.out.println("D"); //main线程语句,根据顺序最后执行,显示D
}
public static void showExce()throws Exception
{
throw new Exception();
}
}
复制代码
作者:
赵鸿富
时间:
2013-3-19 09:20
//打印的结果是B,C,D
//先给你解释下代码流程
//首先你这代码肯定会抛出异常进入catch打印出B
//然后进入finally
//finally你们的两个都会执行到,所以会打印出CD
//最后打印出 的是BCD
class Demo
{
public static void main(String[] args)
{
try
{
showExce();
System.out.println("A");
}
catch(Exception e)
{
System.out.println("B");
}
finally
{
System.out.println("C");
}
System.out.println("D");
}
public static void showExce()throws Exception
{
throw new Exception();
}
}
作者:
陈丽莉
时间:
2013-3-19 14:37
若还有问题,请继续追问;没有的话,请将帖子分类改成【已解决】~
作者:
老衲玩IT
时间:
2013-8-24 16:56
showExce()抛出异常,不会继续执行try里面的代码,被catch捕获后输出B,finally必须执行,所以输出C,main函数最后输出D.
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2