黑马程序员技术交流社区
标题:
程序为何会编译失败呢?
[打印本页]
作者:
_Water
时间:
2014-4-4 10:11
标题:
程序为何会编译失败呢?
本帖最后由 _Water 于 2014-4-8 14:12 编辑
为何老提示错误: 无法访问的语句,System.out.println("A");
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");
}
}
复制代码
作者:
osully
时间:
2014-4-4 10:48
throw new Exception();
System.out.println("A");
你这里抛出异常 下面语句运行不到
就跟return continue break 下面不允许有语句一样
作者:
请备注
时间:
2014-4-4 11:12
楼上正解 ,throw new Exception(); 这个语句执行了的话 ,他下面的语句就执行不到了。
另外 在抛异常的时候 父类的异常要放在最下面抛 否则也会出现子异常不执行的情况
作者:
fufeng
时间:
2014-4-4 11:38
因为
try
{
throw new Exception();
System.out.println("A");
}你一try 就抛出了一个新异常,系统就进入了异常处理机制,就去处理异常了,当然try里面的其他代码就不能执行了,而且,永远都不可能执行,java虚拟机就会认为你下面的代码就是废话(个人理解),它就不干了。让我干活还要带上没用的东西。
处理方法:
1.将System.out.println("A");去掉
2.在 throw new Exception();前加上判断语句,即满足/不满足某条件就抛出异常,否则就就执行System.out.println("A");
作者:
杨殿生
时间:
2014-4-4 12:03
因为你永远不会执行到System.out.println("A");语句 ,throw new Exception();这句下面不能写语句,永远执行不到
作者:
╰青青子佩ˊゝ
时间:
2014-4-4 12:03
3点提醒你,希望能帮到你。看下面代码。
class Demo
{
public static void func()
{
try
{
//1.你这里抛出异常,直接会被下面的catch捕捉,即程序直接进入catch内的代码中,那么System.out.println("A"),不能被执行。
throw new Exception();
//2.你应该把这句输出代码放到上行代码前面.
System.out.println("A");
}
catch (Exception e)
{
System.out.println("B");
}
}
public static void main(String[] args)
{
//3.上面已经对异常进行了处理,这里不需要再try和catch了。
// try
// {
func();
// }
// catch (Exception e)
// {
System.out.println("C");
// }
System.out.println("D");
}
}
复制代码
作者:
宋超2356
时间:
2014-4-4 12:10
为何老提示错误: 无法访问的语句,System.out.println("A");
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");
}
}
复制代码
作者:
张耀扬
时间:
2014-4-5 23:14
throw new Exception();
这一句抛出异常后, 下面这一句就不会执行了.
System.out.println("A");
作者:
_Water
时间:
2014-4-8 14:11
感谢大家的解答
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2