读书人

Java错误处理不解之处

发布时间: 2012-11-01 11:11:32 作者: rapoo

Java异常处理不解之处

现有下面两段异常处理的方式

?

1:

class A{    public void funcOfA() throws Exception{           try{               /* 此方法可能抛出异常ExceptionTypeB,                * ExceptionTypeC,ExceptionTypeD等等                */                 funcTest();           }catch(ExceptionTypeB eb){                 //忽略ExceptionTypeB异常不作处理                      }catch(Exception e){                 //对于非ExceptionTypeB异常进行抛出处理                 throw e;           }    }}class B{    public void funcOfB(){         A a = new A();         try{              a.funcOfA();         }catch(Exception e){              //此处的e异常是否是非ExceptionTypeB异常              //直接进行异常处理         }    }}

?2:

class A{    public void funcOfA() throws Exception{         /* 此方法可能抛出异常ExceptionTypeB,          * ExceptionTypeC,ExceptionTypeD等等          */          funcTest();    }}class B{    public void funcOfB(){         A a = new A();         try{              a.funcOfA();         }catch (ExceptionTypeBe b){               //忽略ExceptionTypeB异常,不进行处理         }catch(Exception e){              //直接进行异常处理         }    }}

?

比较1和2两种异常处理模式,发现结果差异很大。

?其中方式2得到的结果是想要的结果。

?方式1结果有问题。

?

哪位大侠能解惑。不胜感激!!!

读书人网 >编程

热点推荐