Java | 早期リターン(ガード節)のメリットと注意点

Java Java
スポンサーリンク

早期リターン+例外処理を「テストしやすいコード設計」にする方法

ここまでで「早期リターンは業務ロジックの整理」「例外処理は外部要因の失敗対応」に使うことを見てきました。
実務では テストのしやすさ も重要です。早期リターンと例外処理を組み合わせると、ユニットテストや統合テストが書きやすくなります。


ポイント

  1. 早期リターンで異常系を明示
    → テストケースごとに「この条件なら即終了」とわかりやすい。
  2. 例外処理で外部要因を分離
    → 外部サービスやファイル操作はモック化しやすい。
  3. 戻り値やレスポンスを統一
    → テストで「期待される結果」を比較しやすい。

実務的サンプル:ユーザー登録サービス

public class UserService {

    public Response registerUser(String name, String email, Database db) {
        // --- 早期リターンで入力チェック ---
        if (name == null || name.isEmpty()) {
            return new Response(400, "名前を入力してください");
        }
        if (email == null || !email.contains("@")) {
            return new Response(400, "メールアドレスが不正です");
        }

        // --- 例外処理で外部要因をカバー ---
        try {
            db.save(name, email); // DB保存処理
            return new Response(200, "登録成功");
        } catch (SQLException e) {
            return new Response(500, "データベースエラー: " + e.getMessage());
        }
    }
}
Java

テストしやすい理由

  • 入力チェックのテスト
    • name = "" → 400エラー
    • email = "abc" → 400エラー
  • 正常系のテスト
    • 正しい入力 → 200成功
  • 外部要因のテスト
    • DBモックで例外を投げる → 500エラー

👉 早期リターンで「業務ロジックの異常系」が明確、例外処理で「外部要因の異常系」が分離されているので、テストケースを整理しやすい。


まとめ

  • 早期リターン: テストで「条件不一致」を簡単に確認できる。
  • 例外処理: 外部要因をモック化して異常系を再現できる。
  • 組み合わせ: 「業務ロジック」と「外部要因」を分けることで、テストが明確になる。

✅ 実務では「早期リターンで業務ロジックを整理」「例外処理で外部要因を分離」することで、テストしやすく保守性の高いコードが書けます。

Java
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました