第二条,不会被执行的,看看java的书吧,里面讲的很清楚。
你写成这样就行了:
try{
  ...
}catch(ArithmeticException e){
...
}catch(Exception e){
...
}

解决方案 »

  1.   

    如果在第一次捕获到异常后,在catch内抛出新的异常,后面的catch就会捕获到
      

  2.   

    你确认ArithmeticException  是Exception的子类吗?
    是的话不可能出现的
      

  3.   

    mvmouse(mouse)  说的也是有可能的
      

  4.   

    yesh,我喜欢讨论基础的。
    Up up ...
      

  5.   

    就是因为ArithmeticException是Exception的子类,所以会引起程序错误,关键问题就是在一个try中为什么执行了上层的catch语句(异常超类)而为什么还执行下层的catch(异常子类),不是不可达到吗?那它怎么判断下层的catch
      

  6.   

    如果捕获到
    rithmeticException那应该是在这里出现问题
    catch(Exception e){
    ...
    }
      

  7.   

    如果在第一次捕获到异常后,在catch内抛出新的异常,后面的catch就会捕获到
    -----------------------------------------------------------------------同志们,不是吧!
    如果ArithmeticException 是Exception 的子类的话,搂住那样的写法根本连编译都过不了,还谈什么执行?
      

  8.   

    像mvmouse(mouse)说的,那假如在第一次捕获异常后,而不抛出新异常呢?那是不是意味能正常执行呢,应该不是吧
      

  9.   


     aixy(一个好人) 说的对哦。忘了楼主贴贴源码看看?
      

  10.   

    aixy(一个好人) 
    能否谈谈编译的一些知识理论
      

  11.   

    是啊,请高人讲讲编译吧。
    其实这个主要是关于是Exception类的正确使用:) 看看 《Practical Java》
      

  12.   

    你可以去掉catch(ArithmeticException e),在catch(Exception e)中用ex instanceof ArithmeticException来判断是什么异常
      

  13.   

    用if(e instanceof ArithmeticException)来判断是什么异常
      

  14.   

    应该把异常类的子类放前面,Exception放后面,这样,所有的异常就都能捕捉到,而且捕捉
    特殊异常的代码也起到了作用。
      

  15.   

    ArithmeticException继承RuntimeException
    RuntimeException继承Exception所以ArithmeticException是Excepiton的子类。子类异常必须在父类异常之前被捕获,否则编译就会出错。