黑马程序员技术交流社区
标题:
请帮忙解答疑惑
[打印本页]
作者:
完美恋爱
时间:
2013-12-6 09:06
标题:
请帮忙解答疑惑
本帖最后由 完美恋爱 于 2013-12-6 11:21 编辑
class Fu extends Exception{}
class Zi extends Fu{}
class Demo
{
public static void main(String[] args)
{
try
{
throw new Zi();
}
catch(Exception e)
{
System.out.println("Exception");
}
catch(Fu e)
{
System.out.println("Fu");
}
}
}
这问这段代码为什么编译失败啊?
作者:
李文帅
时间:
2013-12-6 09:41
当使用多个catch子句来处理一段代码可能会引发的多个异常,应把父类异常放到最后。
代码应该为:
class Fu extends Exception{}
class Zi extends Fu{}
class Demo{
public static void main(String[] args){
try{
throw new Zi();
}catch(Fu e){
System.out.println("Fu");
}catch(Exception e){
System.out.println("Exception");
}
}
}
复制代码
作者:
几番意难相付
时间:
2013-12-6 09:48
catch(Exception e)
{
System.out.println("Exception");
}
catch(Fu e)
{
System.out.println("Fu");
}
Fu这个类继承的是Exception 上面又捕捉了一个Exception 等于Exception被捕获了两次 重复 删除一个就可以 或者将
catch(Fu e)
{
System.out.println("Fu");
}
放在catch(Exception e)的上面
作者:
ZHMing
时间:
2013-12-6 09:56
try
{
throw new Zi();
}
catch(Exception e)
{
System.out.println("Exception");
}
catch(Fu e)
{
System.out.println("Fu");
}
try catch模块里父类的exception应该放到最后一个代码块上
否则第一个就把父类的exception执行完了,后边的代码就没有意义了。
基础班毕老师的视频再好好看一下。
作者:
┾——黑马
时间:
2013-12-6 10:02
class Fu extends Exception{}
class Zi extends Fu{}
class Demo
{
public static void main(String[] args)
{
try
{
throw new Zi();
}
catch(Exception e)
{
System.out.println("Exception");
}
catch(Fu e)
{
System.out.println("Fu");
}
}
}
第一种解决方式,将 catch(Exception e)
{
System.out.println("Exception");
}放在最下面
第二种解决方式,删掉其中的一个catch语句块。
要记住一个原则,当有多个catch语句时,应该将父类或者说是超类的捕获语句块放在最下面
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2