説明: 私はいつも、すべてのパラメーターを常にチェックしているため、多くの if チェックと try キャッチが発生すると言われています。
質問: 以下のコードでは、例外処理を処理するメソッドのみが、リファクタリングされたプライベート ヘルパー メソッドではなく、公開されているルート メソッドにあるようにコードをクリーンアップしました。この練習は大丈夫ですか?
発生する可能性のあるメソッドの近くで例外を処理していませんが、コードははるかにクリーンです。
コードノート:
- メソッド 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");
}
}