Javaの「例外のスローとキャッチ(throw and catch)」は、プログラム実行中に発生するエラー(例外)を検出し、それに適切に対処する仕組みです。この仕組みによって、予期しない状況に柔軟かつ安全に対応することができます。
1. 例外のスロー(throw)
例外をスローするとは、ある異常状態が発生したことを通知するために、例外オブジェクトを明示的に投げることです。Javaでは、throw キーワードを使って例外をスローします。
構文
例
注意点
-
throw文を使うと、その時点でメソッドの実行は終了し、例外処理に移行します。 -
チェック例外をスローする場合は、メソッド宣言に
throwsを付ける必要があります(後述)。
2. 例外のキャッチ(catch)
例外をキャッチするとは、スローされた例外を受け取り、適切に処理することです。これは try-catch ブロックを使って実現します。
構文
例
3. throws宣言(チェック例外のスロー)
Javaには2種類の例外があります:
| 種類 | 説明 |
|---|---|
| チェック例外 | コンパイル時に検査される例外(例:IOException) |
| 非チェック例外(実行時例外) | 実行時にのみ検出される(例:NullPointerException) |
チェック例外をスローする場合、メソッドの宣言部に throws を追加する必要があります。
例
このように宣言することで、呼び出し元に例外処理を委ねることができます。
4. 例外処理のベストプラクティス
-
必要な場合のみ例外をスローする。
-
具体的な例外クラスを使って意味のあるエラー処理を行う。
-
catch節ではエラーメッセージの出力やログ記録などを行う。 -
finally節を使えば、例外の有無にかかわらず共通の後処理が書ける。
まとめ
-
throwを使って例外を発生させる。 -
try-catchを使って例外を捕捉・処理する。 -
チェック例外をスローする場合は、メソッドに
throwsを明示する。 -
適切な例外処理によって、安全で信頼性の高いプログラムを実現できる。
生成日:2025/05/03