用于管理异常的类

mon*_*dev 9 java methods try-catch short

有一个用于捕获异常的短方法的类是否很好?

class ContractUtils{
  public static String getCode(Contract contract) throws MyException{
    try{
      return contract.getInfo().getCode(); //throws ContractException and LogicException
    }catch(Exception e){
      throw new MyException("error during code reading:"+e.getMessage, e);
    }
  }
  //other methods like above...
}
Run Code Online (Sandbox Code Playgroud)

wer*_*ero 2

您的实用程序类ContractUtil引入了一定程度的间接性,只是为了将原始异常转换为另一个异常:

而不是直接调用:

 return contract.getInfo().getCode()
Run Code Online (Sandbox Code Playgroud)

你现在正在写更人工的

 return ContractUtils.getCode(contract);
Run Code Online (Sandbox Code Playgroud)

在某些情况下,该解决方案可能是合理的,例如:

不允许抛出 ContractException 或 LogicException,并且多次调用此方法。

但如果您可以更改其签名,最好将原始方法重新设计为仅抛出MyException