黑马程序员技术交流社区
标题:
自学求解。。。。抛异常问题
[打印本页]
作者:
張帅
时间:
2013-9-26 08:11
标题:
自学求解。。。。抛异常问题
class Demo
{
public static void function()
{
try
{
throw new Exception();
System.out.println("A");
}
catch(Exception e)
{
System.out.println("B");
}
}
public static void main(String[] args)
{
try
{
function();
}
catch(Exception e)
{
System.out.println("C");
}
System.out.println("D");
}
}
//这个程序的执行结果为什么是编译失败?try里边抛异常了,但是后边也catch了,下边的语句为什么执行不到啊?
作者:
落木萧萧
时间:
2013-9-26 09:03
还没开始复习异常部分,仅就个人理解作答,因为在function方法里异常已经被捕获,所以不会再抛出被main方法里捕获。我是在Eclipse里编译的,编译失败的可能结果有两个:一是一个.java文件里必须且只能有一个public class ,LZ的没有;二是在function方法里,抛出异常throw new Exception();后的语句System.out.println("A");不会被执行到。
PS。建议把代码放代码块里,方便说行号。
作者:
梁贺
时间:
2013-9-26 09:34
public static void function()
{
try
{
throw new Exception();
System.out.println("A");
}
catch(Exception e)
{
System.out.println("B");
}
}
在function方法中,try语句中直接先抛出异常,再打印A,throw new Exception();
System.out.println("A");
但是当异常被抛出的时候,不会再执行打印A操作,虚拟机检测会编译失败,把打印语句放到
throw语句上面就不会出错了。
本题与catch无关。
希望可以帮助你~
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2