以这种方式声明功能是否会对性能产生影响?
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中讨论此问题。