「実務で使える switch 文のテンプレート集」を、例外処理やログ出力を組み込んだ形でまとめてみます。業務コードでは「ただ分岐する」だけでなく、異常系の扱いやログ記録が重要になるので、それを意識したサンプルを紹介します。
基本テンプレート(ログ+例外)
switch (value) {
case "A":
logger.info("処理Aを開始します");
doProcessA();
break;
case "B":
logger.info("処理Bを開始します");
doProcessB();
break;
default:
logger.warn("未定義の値: {}", value);
throw new IllegalArgumentException("不正な入力値: " + value);
}
Java- logger: 業務では
System.out.printlnよりもLoggerを使うのが一般的。 - 例外: 想定外の値は
IllegalArgumentExceptionなどを投げて呼び出し元に通知。
数値入力のバリデーション付き
switch (day) {
case 1:
logger.debug("入力値: {}", day);
System.out.println("月曜日");
break;
case 2:
System.out.println("火曜日");
break;
case 3:
System.out.println("水曜日");
break;
case 4:
System.out.println("木曜日");
break;
case 5:
System.out.println("金曜日");
break;
case 6:
System.out.println("土曜日");
break;
case 7:
System.out.println("日曜日");
break;
default:
logger.error("不正な曜日番号: {}", day);
throw new IllegalArgumentException("曜日は1〜7で指定してください");
}
Java- debugログ: 正常系でも入力値を記録しておくとトラブルシュートに役立つ。
- errorログ: 異常系は必ずエラーレベルで記録。
複数ケースをまとめる(フォールスルー活用)
switch (status) {
case "NEW":
case "PENDING":
logger.info("新規または保留状態: {}", status);
handleNewOrPending();
break;
case "APPROVED":
logger.info("承認済み");
handleApproved();
break;
case "REJECTED":
logger.info("却下");
handleRejected();
break;
default:
logger.error("未知のステータス: {}", status);
throw new IllegalStateException("ステータス不明: " + status);
}
Java- フォールスルー: 複数の値で同じ処理をしたいときに便利。
- IllegalStateException: 状態管理の分岐では「ありえない状態」を例外で表す。
enumとの組み合わせ(業務コードでよく使う)
enum Command {
START, STOP, RESTART
}
public void execute(Command cmd) {
switch (cmd) {
case START:
logger.info("サービス開始");
startService();
break;
case STOP:
logger.info("サービス停止");
stopService();
break;
case RESTART:
logger.info("サービス再起動");
restartService();
break;
default:
logger.error("未定義のコマンド: {}", cmd);
throw new UnsupportedOperationException("コマンド未対応: " + cmd);
}
}
Java- enum: 値の範囲が限定されるので、実務では安全性が高い。
- UnsupportedOperationException: 「まだ未対応の機能」を表すのに適切。
まとめ
- 基本は「正常系はログ+処理、異常系はログ+例外」
- loggerのレベルを使い分ける(info/debug/error)
- defaultで必ず異常系を拾う(例外を投げる or エラーログ)
- enumを活用すると安全性が高い
👉 実務でよくあるパターンを網羅しました。

