4.7.2 例外の捕捉とエラーの判定
Connector .NETのアプリケーションでは,Connector .NETが提供するクラスライブラリやスタブ,.NET Frameworkなどから例外が発生する場合があります。これらの例外は適切に捕捉してください。
Connector .NETからは,次の例外が発生する可能性があります。
|
名前空間 |
例外名 |
意味 |
|---|---|---|
|
Hitachi.OpenTP1 |
TP1Exception |
共通の例外基底クラス |
|
TP1RemoteException |
サーバで発生した例外の受信 |
|
|
TP1UserException |
ユーザが任意に使用 |
|
|
TP1MarshalException |
スタブでのデータ変換エラー |
|
|
Hitachi.OpenTP1.Connector |
TP1ConnectorException |
クラスライブラリでのエラー検知 |
|
TcnIllegalArgumentException (TP1ConnectorExceptionのサブクラス) |
メソッド呼び出し時の引数の不正 |
|
|
TcnIllegalStateException (TP1ConnectorExceptionのサブクラス) |
メソッド呼び出し時の状態の不正 |
|
|
TcnNotUsedException (TP1ConnectorExceptionのサブクラス) |
設定されていない機能の使用 |
- 〈この項の構成〉
(1) TP1Exception
OpenTP1のすべての例外の基底クラスです。個別の例外を捕捉しないで,まとめて捕捉したい場合などにこのTP1ExceptionクラスですべてのOpenTP1の例外を捕捉できます。
(2) TP1RemoteException
クライアントスタブを使用してRPC要求をした場合に,サーバ側で例外が発生したことを示す例外です。呼び出し元のクライアント側で発生した例外とサーバ側で発生した例外を区別できます。
(3) TP1UserException
クライアント,およびサーバを.NETインタフェース定義を使用したOpenTP1 for .NET FrameworkのUAPで作成した場合に,RPC要求されたサービスメソッドからクライアントにこの例外を返すことができます。
この例外はUAPで任意に使用できます。クライアント側でもTP1RemoteExceptionには変換されません。
なお,.NETインタフェース定義を使用しない場合は,この例外を使用しないでください。使用した場合,クライアント側にRPC要求のエラーが通知されます。
(4) TP1MarshalException
クライアントスタブを使用してRPC要求をした場合に,データ変換エラーが発生したことを示す例外です。クライアントとサーバでインタフェースの定義が一致していない場合や,サービス定義(データ型定義)に誤りがあった場合などに発生します。