public class One(){
   public void A() throws Excepiton{
      //执行某操作
     ...
   }
}public class Two(){
   public void B(){
      One o=new One();
      try{
        o.A();
        System.out.println("执行成功");
      }catch(Exception e){
        System.out.println("执行失败");
      }
   }  
}现在有个问题就是执行方法B()时,如果o.A()抛出异常了,输出却仍然是:执行成功。这个是为什么?
哪位高人指点下

解决方案 »

  1.   

    确定,我就是奇怪A方法都抛异常了为什么不走catch
      

  2.   

    少写一个异常捕获:
    public class One(){
      public void A() throws Excepiton{
        try{
          //执行某操作
        ...
        }catch(Exception ex){}
      }

    是不是因为这个呀?我A方法里已经捕获了,所以B方法里就不会再次捕获?
      

  3.   

    Impossible! it should run System.out.println("执行失败"); 
      

  4.   

    晕。。你在A里已经抓了,在外面还怎么抓啊??
    在A里把异常抛出来,throws,这样外面才能抓啊
      

  5.   

    确切的A方法是这样的
    public class One(){
      public void A(){
        try{
          //执行某操作
        ...
        }catch(Exception ex){}
      }

    A方法里只捕获,未进行处理,那么到B方法里是不是就捕获不到了呀?
    然后我把A方法改成这样的,但是也不行:
    public class One(){
      public void A() throws Excepiton{
        try{
          //执行某操作
        ...
        }catch(Exception ex){}
      }
      

  6.   

    public void A() throws Excepiton{ 
        try{ 
          //执行某操作 
        ... 
        }catch(Exception ex){
    throws e;

      } 
      

  7.   

    LZ你很可爱,你A方法中如果捕获了,就不要把catch置空,输出错误信息,或者再次抛出。
    那么在B方法中肯定能捕获到异常了。