描述: 人们总是告诉我,人们总是检查你的所有参数,这会导致大量的 if 检查和 try catch。
问题: 在下面的代码中,我清理了代码,以便处理异常处理的唯一方法位于公开公开的根方法中,而不是在重构的私有辅助方法中。这种做法好吗?
我没有处理更接近它们可能发生的方法的异常,但代码更清晰。
代码注释:
- 方法 validateInputs() 不包括在内。
- ParameterObject a 派生自通过“someCode”创建的参数,它代表我想要传递的参数。每当我需要超过 2 个参数时,我都会将这些参数重构为参数对象。
代码:
public class UnderTest {
public UnderTest() {}
public boolean runWork( String someValue ) throws CustomException
{
try
{
validateInputs();
// someCode
.
.
processWork( ParameterObject a );
}
catch( Exception e )
{
logError(e);
}
}
private void processWork( ParameterObject a )
{
Operation1( ParameterObject a );
Operation2( ParameterObject a );
}
private void Operation1( ParameterObject a )
{
// someCode
}
private void Operation2( ParameterObject a )
{
// someCode
}
private void logError(Exception e)
{
throw new CustomException(e,"Message");
}
}