代码改变世界

[hyddd的Fortify SCA分析Java代码记录][Structural]Poor Error Handing:Overly Broad Throws

2009-02-26 11:57  hyddd  阅读(3054)  评论(0编辑  收藏  举报

先看一段代码:

public void doExchange()
  
throws Exception {
  
}

当一个函数定义为Exception/Throwable时,调用这个函数的人很难判断到底这个函数可能会出现什么Exception,简单说 Exception/Throwable太笼统了,这样不利于调用者分别处理各种异常,所以应该在函数定义时尽量说明函数有可能抛出的异常类型,如下面的代码:

 

public void doExchange()
  
throws IOException, InvocationTargetException,
         SQLException {
  
}

其实[Structural]Poor Error Handing:Overly Broad Throws和[Structural]Poor Error Handing:Overly Broad Catch的想法很类似,大家可以参考一下。