Scalaの例外処理におけるtry-catch-finally構文は、Javaと似ていますが、Scalaの特徴を活かした柔軟な構文となっています。この構文は、例外が発生する可能性のあるコードを安全に実行し、必要に応じて例外を捕捉・処理し、最終的な後処理を行うために使用されます。
1. 構文の基本
2. 各構成要素の説明
tryブロック
-
例外が発生する可能性のあるコードを記述します。
-
例外が発生しなければ、catchブロックやfinallyブロックには進みません(finallyは除く)。
catchブロック
-
Javaと異なり、複数の
case文によるパターンマッチングを使って、例外の型に応じた処理を記述します。 -
case e: ExceptionType =>の形式で個別の例外に対する処理を記述します。
finallyブロック
-
例外の発生有無にかかわらず必ず実行される処理を記述します。
-
通常はリソースの解放やログ出力などに用いられます。
3. 具体例
実行例
4. 注意点
-
finallyブロック内でreturnを使うと、tryやcatchの戻り値を上書きしてしまうため、推奨されません。 -
Scalaでは副作用の少ない関数型スタイルが推奨されるため、
Tryなどの代替手段(scala.util.Try)も利用されます(純粋関数型風のエラーハンドリング)。
5. まとめ
| ブロック | 目的 |
|---|---|
try |
例外が発生する可能性のある処理 |
catch |
例外の種類に応じた処理 |
finally |
常に実行されるクリーンアップ処理 |
Scalaのtry-catch-finally構文は、命令型言語に慣れている開発者にも直感的に理解しやすく、かつScala独自のパターンマッチ構文を活かした柔軟な例外処理が可能です。
生成日:2025/05/04