マルチキャッチ例外処理
1つのcatchブロックで複数の例外タイプをキャッチする。
コード比較
✕ Pre-Java 7
try {
process();
} catch (IOException e) {
log(e);
} catch (SQLException e) {
log(e);
} catch (ParseException e) {
log(e);
}
✓ Java 7+
try {
process();
} catch (IOException
| SQLException
| ParseException e) {
log(e);
}
このコードに問題がありますか? お知らせください。
モダンな方法が優れている理由
DRY原則
同じ処理ロジックを3回書く代わりに1回で済みます。
再スロー可能
キャッチした例外を正確な型で再スローできます。
見やすい
すべての処理対象タイプが1か所にまとまっています。
旧来のアプローチ
個別のcatchブロック
モダンなアプローチ
マルチキャッチ
JDKバージョン
7
難易度
初級
JDKサポート
マルチキャッチ例外処理
利用可能
JDK 7(2011年7月)以降、広く利用可能
仕組み
マルチキャッチは同じコードで複数の例外タイプを処理します。例外変数は実質的にfinalなので、ラッピングなしに再スローできます。
関連ドキュメント