Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 TP1/Extension for .NET Framework 使用の手引


4.10.2 例外の捕捉とエラーの判定

OpenTP1 for .NET FrameworkのUAPでは,Extension .NETが提供するクラスライブラリやスタブ,.NET Frameworkなどから例外が発生する場合があります。これらの例外は適切に捕捉してください。

Extension .NETからは,次に示す例外が発生する可能性があります。

表4‒8 発生する可能性がある例外

名前空間

例外名

意味

Hitachi.OpenTP1

TP1Exception

共通の例外基底クラス

TP1RemoteException

サーバで発生した例外の受信

TP1UserException

ユーザが任意に使用

Hitachi.OpenTP1.Server

TP1ServerException

クラスライブラリでのエラー検知

〈この項の構成〉

(1) TP1Exception

OpenTP1のすべての例外の基底クラスです。個別の例外を捕捉しないで,まとめて捕捉したい場合などに,このTP1ExceptionクラスですべてのOpenTP1の例外を捕捉できます。

(2) TP1RemoteException

クライアントスタブを使用してサービス要求をした場合に,サーバ側で例外が発生したことを示す例外です。呼び出し元のクライアント側で発生した例外とサーバ側で発生した例外を区別できます。

.NETインタフェース定義を使用しないサービスメソッドでユーザ例外が発生した場合,クライアントにはDCRPCER_SYSERR_AT_SERVERが返されます。エラーの詳細は.NETエラーログファイルを参照してください。

(3) TP1UserException

クライアント,およびサーバを.NETインタフェース定義を使用したOpenTP1 for .NET FrameworkのUAPで作成した場合に,サービス要求されたサービスメソッドからクライアントにこの例外を返すことができます。

この例外はUAPで任意に使用できます。また,クライアント側でもTP1RemoteExceptionには変換されません。

なお,.NETインタフェース定義を使用しない場合は,この例外を使用しないでください。使用した場合は,クライアント側にサービス要求のエラーが通知されます。

(4) TP1ServerException

クラスライブラリの各メソッドでエラーを検知した場合に発生します。各メソッドでの発生条件や内容については「7. クラスリファレンス」を参照してください。

.NETインタフェース定義を使用しないSPP.NETでは,各サービスメソッドですべての例外を確実に捕捉してください。

サービスメソッドが例外をSPP.NET実行コンテナに返した場合,クライアント側にサービス要求のエラーが通知されます。