![]() ![]() ![]() ![]() |
目次 |
もしプログラミングの黄金律があるなら、それはエラーはソフトウェアプログラムで発生するということである。 我々はこの事実を知っている。 けれども本当に重要なのは、エラーが発生した後に起きることである。 どのようにエラーは処理されるか? 誰がそれを処理するか? プログラムは復元することができるか?
Java 言語では、プログラムにエラー処理能力を提供するために例外を使用する。 このレッスンでは、例外とは何であるか、例外のあげ方とキャッチ方法、キャッチした例外で行うこと、Java 開発環境が提供する例外クラス階層の有効な使用法などについて学習する。
例外と注意点
例外は、命令の標準的な流れを混乱させるプログラムの実行中に発生するイベントである。
Java 例外との最初の出会い
Java のプログラミングを行うとほとんどの場合、次のエラーメッセージに類似したエラーメッセージが出力される。
InputFile.java:9: Exception java.io.FileNotFoundException must be caught, or it must be declared in the throws clause of this method. fis = new FileInputStream(filename);このメッセージは、コンパイラが,対処されていない例外を見つけたことを表す。 Java 言語では、この「確認済」例外はすべてキャッチされるか、あるいは指定されるように要求する。 確認済例外は、実行時例外ではない例外である。
Java のキャッチまたは指定の条件
Java では、プログラムがそのメソッドの範囲内であげられるすべての確認済例外をキャッチするか、あるいは指定することが要求される。
例外の対処
この節では、2つの異なる例外をあげることができるプログラム例を起用する。 このプログラム例を使用して、例外のキャッチとその対処方法、また例外の指定方法について学習する。
例外をあげる
Java ランタイムシステムとJava パッケージのクラスのいくつかは、ある状況の下で例外をあげる。 これと同じ手続きを使用して各自のプログラムで例外をあげることができる。この節では、 throw 文 を使用して、自前の Java コードから例外をあげる方法を示す。 すべての例外は Throwable のサブクラスでなければならない。 つまり、例外は java.lang パッケージで定義される Throwable クラスからの(直接的または間接的な)継承でなければならない。
実行時の例外 − 論争
Java 言語では、メソッドが実行時例外をキャッチしたり指定することを要求しないので、プログラムは実行時例外だけをあげるコードを書きたくなる。 これは「例外の乱用」になるので、奨励できない。
C++ プログラマへ: Java の例外ハンドラは finally ブロックを持つことができる。これによりプログラムは、 try ブロックの後で後始末処理を行なうことができる。 finally 文の使用方法の詳細については、finally ブロック を参照のこと。
![]() ![]() ![]() ![]() |
目次 |