黑马程序员技术交流社区
标题:
面向对象第10天的练习四中的关于try和catch的代码
[打印本页]
作者:
会说话的木头
时间:
2014-4-10 15:15
标题:
面向对象第10天的练习四中的关于try和catch的代码
class Demo
{
public static void func()
{
try
{
throw new Exception();
System.out.println("A");
}
catch (Exception e)
{
System.out.println("B");
}
}
public static void main(String[] args)
{
try
{
func();
}
catch (Exception e)
{
System.out.println("C");
}
System.out.println("D");
}
}
复制代码
为什么编译失败,且失败的原因是因为打印“A”的输出语句执行不到?
作者:
_Water
时间:
2014-4-10 15:29
throw new Exception();
System.out.println("A");
你这里抛出异常 下面语句运行不到
其实就跟return continue break 下面不允许有语句一样
作者:
jingdou56
时间:
2014-4-10 15:33
try
{
throw new Exception();
System.out.println("A");
}
这里,你进 try 就抛异常,
程序就跳到 catch 块了,
下面的 System.out.println("A"); 这句是永远执行不到的,
所以编译就会报错!
虚拟机不允许程序中有一定执行不到的语句存在!
作者:
杨殿生
时间:
2014-4-10 17:48
因为你throw抛出了异常所以你throw下面的语句一定执行不到,那个语句下面不要放语句
作者:
小歪
时间:
2014-4-10 20:12
抛出异常 就如同循环语句中的break,跳出了当前代码块。
作者:
Mr.__ㄨīn
时间:
2014-4-11 18:41
try
{
throw new Exception(); //监测到这里抛出了异常,要去处理异常,
//直接跳到catch()中去解决异常了,所以下面语句就执行不到了。
System.out.println("A");
}
catch (Exception e)
{
System.out.println("B");
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2