Interstage Application Server アプリケーション作成ガイド (CORBAサービス編) |
目次
索引
![]() ![]() |
第9章 ネーミングサービスのプログラミング | > 9.2 ネーミングコンテキストインタフェース |
ネーミングサービスは、標準的なシステム例外の他に、以下に示すユーザ例外を発生させます。
enum NotFoundReason{ missing_node, not_context, not_object }; exception NotFound { NotFoundReason why; Name rest_of_name; };
この例外は、バインディング名で指定された各ネームコンポーネントに相当するバインディングが存在しない場合や、バインディングは存在するが要求されたバインディングのタイプと異なる場合に発生します。
whyには、例外の発生原因により以下の値が設定されます。
rest_of_nameメンバには、処理が行われなかった残りのバインディング名が設定されます。rest_of_nameの最初のネームコンポーネントが、問題があったネームコンポーネントとなります。
exception CannotProceed { NamingContext cxt; Name rest_of_name; };
この例外は、ネーミングサービスが何らかの異常により、処理を途中で終了した場合に発生します。
cxtメンバには、すでに処理が正常に行われたネーミングコンテキストが設定されます。
rest_of_nameメンバには、処理されなかった残りのバインディング名が設定されます。
エラーの内容によっては、返されたctxとrest_of_nameを使用して再度処理を行うことができます。
exception InvalidName {};
この例外は、正しくないバインディング名が指定された場合に発生します。
ネームコンポーネントを1つも含まない、長さ0のバインディング名が指定された場合、当例外が発生します。
exception AlreadyBound {};
オブジェクトが指定されたバインディング名ですでにネーミングコンテキストに登録されていることを意味します。
exception NotEmpty {};
この例外は、削除しようとしたネーミングコンテキストに1つ以上のバインディングが存在する場合に発生します。ネーミングコンテキストを削除するためには、ネーミングコンテキストが空であることが必要です。
目次
索引
![]() ![]() |