Curl ORBは、サーバサイドで発生したExceptionを、クライアントサイドでcatchすることができます。また、サーバサイドで定義したExceptionをクライアントの任意のExceptionにバインディングすることができます。
Exceptionハンドリング
通常サーバサイドにてExceptionが発生した場合、クライアントサイドではCOM.CURLAP.ORB.SERVLET.ORBServerExceptionというExceptionとしてcatchすることができます。サーバサイドにて発生したExceptionクラス名を取得するには、このORBServerExceptionのexception-content.exception-nameで取得できます。また、メッセージはexception-content.messageで取得できます。
{try |
また、サーバ通信に関係ない場合に発生するExceptionはORBClientExceptionとなります。
Exceptionバインディング
サーバサイドにて発生したExceptionに対して、クライアントサイドのExceptionにマッピングすることができます。例えば、サーバサイドのtest.SVExceptionをTEST.CLExceptionにマッピングすることができます。マッピングしますとクライアントサイドでは、TEST.CLExceptionをcatchできるようになります。このマッピングにはbind-exceptionプロシージャを利用します。
{import * from TEST} || arg1:java exception (String) || 複数登録可能 || 同一のCLExceptionにまとめることも可能 {try || サーバサイドでtest.SVExceptionが発生する可能性のあるコード |