他のメソッドに通知する例外処理・Javaソースコードの書き方

例外を他のメソッドに通知

例外が発生した場合、その例外を他のメソッドに通知する書き方があります。
発生した例外について、他のメソッド内で対処したい(解決したい)場合の書き方です。

「例外処理の流れ」は、次のようなイメージです。
赤線が、「例外処理の流れ」を示します。
catch文で、例外の対処をします。

他のメソッドに通知する例外

クラスAのメソッドAから、クラスBのメソッドBを呼び出します。
そのメソッドBにおいて、例外が発生します。
例外の対処(解決処理)は、クラスAのメソッド内にあるcatch文に書きます。

このように例外を通知する場合、メソッドBを呼び出したメソッドAにおいて、メソッドBで発生した例外について対処できます。

もしもメソッドBが、ある2個のメソッドから呼び出された場合、メソッドBの例外について、それら2個のメソッド内で、それぞれで例外の対処を行なえます。

例外処理の例

実際のメソッドについて、例外処理の例を示します。
ここではまず、赤線を見てください。
プログラムの詳細を理解する必要は、ありません。

「他のメソッドに通知する例外」の例

次の文で、ExTextFieldクラスのgetValue()メソッドを、呼び出します。
minValueField.getValue();

次の文において、変数textの値が数値に変換できない文字列形式の場合、例外が起きます。
例:変数textが文字列”abc”の場合、例外NumberFormatExceptionが起きます。
Integer.parseInt(text);

その例外は、getValue()メソッドの呼び出し先であるNumericalRangeFieldPanelクラス、getMinValue()メソッドに通知されます。

そのgetMinValue()メソッド内のcatch文において、例外の対処(解決処理)をします。
次の文で例外の対処として、最小の値として 1 を返す、としています。
例:変数textが文字列”abc”の場合、最小の値として 1 を返して、プログラム処理を続けます。
return 1;

このgetValue()メソッドのように、例外を他のメソッドに通知する場合、例外の対処は、getValue()メソッドの「それぞれの呼び出し先」で、決めることができます。

例えば別のメソッドにおいて、例外の対処として最小の値 100 を返す、という風に決められます。
「それぞれの呼び出し先」で例外の対処法を決めたい場合は、このようにプログラムを書くと良いでしょう。

※この記事は、2004年6月当時の記事になります。

コンピューター
この記事をシェアする

グッズ・メモランダム