黑马程序员技术交流社区
标题:
多重catch块
[打印本页]
作者:
牛合超
时间:
2013-3-7 21:45
标题:
多重catch块
本帖最后由 牛合超 于 2013-3-8 16:06 编辑
public void calculate(){
try{
int num=0;
int num1=42/num;
}catch(Exception e){
System.out.println("异常catch子句1");
}catch(ArithmeticException ae){
System.out.println("异常catch子句2");
}
}
public static void main(String[] args) {
ExceptionCode obj=new ExceptionCode();
obj.calculate();
}
多重catch块练习,什么情况,报 1 error 错误,,这是啥意思。。。。赐教。
作者:
张豪杰
时间:
2013-3-7 23:10
ArithmeticException是Exception的一个子类,当catch多个异常时,先catch子类异常,父类异常要放在最后!
如果先捕获父类异常,那么即便是子类异常路过,也会被catch(父类异常)捷足先登的捕获,这样的话catch(子类异常),就是在那傻等着没事干了,所以编译失败啦。
下面是改正的代码
public void calculate(){
try{
int num=0;
int num1=42/num;
}
catch(ArithmeticException ae){//先catch子类异常
System.out.println("异常catch子句2");
}
catch(Exception e){//然后catch父类异常
System.out.println("异常catch子句1");
}
}
作者:
牛合超
时间:
2013-3-7 23:33
试了,可行,,细节。。。。细节。。。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2