以这种方式声明功能是否会对性能产生影响?

public init(){
    try{
         initApplication();
     }catch(A1Exception){

     }catch(A2Exception){

     ...
     }catch(A5Exception){

     }
}

private void initApplication() throws A1Exception, A2Exception, A3Exception, A4Exception, A5Exception {
   initApp1(); //throws A1, A2, A3
   initApp2(); //throws A4, A5
}


以这种方式实现initApplication()是否存在任何问题?

最佳答案

近年来,有人感觉到检查异常非常有害。这些异常中的每一个,如果被选中,将强制调用方法必须处理它们或声明它们。这会破坏封装,因为现在一些较低级别的实现细节会泄漏到较高级别。

我强烈建议Joshus Bloch在Effective Java中讨论此问题。

10-02 04:10
查看更多