Errors 初級

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 7(2011年7月)以降、広く利用可能

マルチキャッチは同じコードで複数の例外タイプを処理します。例外変数は実質的にfinalなので、ラッピングなしに再スローできます。

共有 𝕏 🦋 in