Javaの例外処理の基礎知識についてです。
例外処理について
例外処理とは、プログラムの実行中に発生するエラーや想定外な状態に対処するための仕組みです。
例外処理を行わないと例外が発生した時点で処理の実行はストップしますが、 例外処理を実装することで、プログラムを適切に終了させたり、実行をストップさせず回復処理を行い処理を継続させることが可能になります。
例外処理の種類
Javaの例外処理を実装する方法は大きく分けて以下3種類あります。
例外処理の種類 | 解説 |
---|---|
try-catch-finally句 | try-catch-finally句で例外が発生する可能性のあるコードを包み込んで、発生した例外をキャッチして適切な処理を行う方法。 |
throws | 発生した例外を呼び出し元に投げる方法。例外が発生したクラスでは例外処理を行わず、呼び出し元に例外処理を依頼する方法。 |
try-with-resources句 | 厳密には例外処理を主目的とした構文ではありませんが、この構文を使用しても例外処理ができます。 |
checked例外とunchecked例外
Javaの例外クラスには大きく分けて、checked例外とunchecked例外があります。
例外の種類 | 意味 |
---|---|
checked例外 | DBや外部ファイルアクセス時に発生するようなJava実行環境外が原因で発生する例外。 例外処理が必須の例外 try~catch句またはthrows句で例外時の処理を記述する必要がある java.lang.Exceptionクラスのサブクラス |
unchecked例外 | 実行中のJavaプログラムが原因で発生する例外とメモリ不足などJavaの例外処理では処理できない理由で発生する例外。例外処理は任意の例外 java.lang.Errorクラス、java.lang.RuntimeExceptionのサブクラス |
例外クラスの構成を図で表すと以下のようになります。
独自例外の定義
Javaでは独自に例外クラスを作成して利用することも可能です。
独自例外クラスの構文は以下です。
- (構文)
- [修飾子] class クラス名 extends Exception { //例外処理 }
Throwableクラスを継承したクラスを継承することで独自例外クラスを定義できますが、 一般的にはExceptionクラスを継承して独自例外クラスを定義します。
コメント