例外処理

ODK API のメソッドは、事前に定義した特定の条件を示す例外をスローできます。このセクションでは、Java コネクターの例外の処理方法に関して、次のトピックを取り上げます。

注:
エラー・ログとメッセージ・ログを使用すれば、エラーの条件およびメッセージをコネクターで処理することもできます。詳しくは、トレース・メッセージとエラー・メッセージの処理を参照してください。

ODK 例外とは

ODK API のメソッドが例外をスローする場合、この例外オブジェクト は、ODKException クラス、またはそのサブクラスからのオブジェクトです。これらのクラスは、Java Exception クラスから拡張されたものです。

ODK 例外を作成するには、ODKException() コンストラクターを使用します。表 62 は、例外オブジェクトの情報を取得するために ODKException クラスが提供する accessor メソッドを示しています。


表 62.
例外オブジェクト内の情報
メンバー accessor メソッド
メッセージ・テキスト getMsg()

注:
ODKException クラス内のメソッドについては、ODKException クラスを参照してください。

ODKException クラスは、特定のエラー条件を示すサブクラスをいくつか提供します (表 103 を参照)。

ODK API ライブラリーからの例外

ODA 用のコードを作成する際に Java の try ステートメントと catch ステートメントを含めれば、ODK API のメソッドがスローした特定の例外を処理することができます。大半の ODK API メソッドのリファレンスの説明には、そのメソッドがスローする例外をリストした、「Exceptions」というタイトルの付いたセクションがあります。

図 76 は、ArmyAgent4 クラス内のサンプル Roman Army ODA からのコード・フラグメントで、getClientFile() メソッドがスローした例外をキャッチします。

図 76. getClientFile() からの例外のキャッチ

try
    {
    remotefile = ODKUtility.getODKUtility().getClientFile(filePath, this);
    }
 
catch (IOException ex)            //file was not found
    {
     return null;
    }
 
//agent doesn't implement IGeneratesBinFiles, so "getClientFile" failed.
 catch (UnsupportedContentException ex)
    {                              //We'll return a random Son instance for now.
     return new Son("X" + ("" + new Date().hashCode()).substring(1),
        new Date().hashCode() % 10  + 2);
    }
 

一般に ODK API メソッドは、例外をスローする際に、メッセージおよび状況の情報を例外オブジェクトに含めません。ただし、必要な場合はメッセージを例外オブジェクトに含めることもできます。

Copyright IBM Corp. 2004