黑马程序员技术交流社区
标题:
又一个异常问题(问题已解决,谢谢各位)
[打印本页]
作者:
戎石锁
时间:
2012-8-6 12:04
标题:
又一个异常问题(问题已解决,谢谢各位)
本帖最后由 戎石锁 于 2012-8-6 14:04 编辑
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");
}
}
这个为什么编译失败啊! 看视频没看懂,求文字解释一下!!
作者:
黑马__李龙
时间:
2012-8-6 12:32
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");
}
}
这样就可以了
作者:
王程
时间:
2012-8-6 12:36
楼上正解,throw语句会抛出异常,所以下面不能接其他语句,因为肯定执行不到,你把语句放在肯定执行不到的位置,编译当然报错啦,修改的话可以把
System.out.println("A"); 放在上面就可以了。
作者:
胡文凡
时间:
2012-8-6 12:38
楼上应该就是正解了
作者:
姬仁贵
时间:
2012-8-6 13:11
class Demo
{
public static void func()
{
try
{
throw new Exception();//
这里抛出一个异常,由下面的catch语句块接收,程序运行也就转到下面的catch语句块中了,
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");
}
}
将func方法里try语句块里面的两条语句调换一下位置就行了。
打印结果:A
B
D
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2