14.21 例外メンバー関数

Oracle Tuxedoソフトウェアでは、例外のスローと捕捉をサポートしています。

注意: 間違った例外コンストラクタを使用すると、データ・メンバーの初期化が行われません。reasonフィールド付きで定義する例外は、データ・メンバーを初期化するコンストラクタを使用して作成する必要があります。デフォルトのコンストラクタを使用した場合は、そのデータ・メンバーは初期化されず、例外の破棄時にシステムによって存在しないデータの破棄が試行されます。例外を作成する際は、できる限り完全にデータ・フィールドを初期化するコンストラクタを使用するようにしてください。例外を最も簡単に識別するには、OMG IDL定義を確認します。この定義には、データ・メンバーに関する追加の定義が記述されています。

例外の各メンバー関数の説明は次の通りです:

CORBA::SystemException::SystemException ()
CORBA::SystemExceptionクラスのデフォルトのコンストラクタです。マイナー・コードは0(ゼロ)に初期化され、完了ステータスはCOMPLETED_NOに設定されています。
CORBA::SystemException::SystemException ( const CORBA::SystemException & Se)
これは、CORBA::SystemExceptionクラスのコピー・コンストラクタです。
CORBA::SystemException::SystemException( CORBA::ULong Minor, CORBA::CompletionStatus Status)
CORBA::SystemExceptionクラスのこのコンストラクタは、マイナー・コードと完了ステータスを設定します。
各引数について次に説明します。
Minor
Exceptionオブジェクトのマイナー・コード。minorフィールドは実装固有の値で、ORBが例外を識別するために使用します。Oracle Tuxedoのminorフィールドの定義は、orbminor.hファイルにあります。
Status
Exceptionオブジェクトの完了ステータス。値を次に示します。
CORBA::COMPLETED_YES
CORBA::COMPLETED_NO
CORBA::COMPLETED_MAYBE
CORBA::SystemException::~SystemException ()
これは、CORBA::SystemExceptionクラスのデストラクタです。Exceptionオブジェクトが使用していたメモリーを解放します。
CORBA::SystemException CORBA::SystemException::operator = const CORBA::SystemException Se)
この代入演算子は、ソース例外から例外情報をコピーします。Se引数には、コピー元のSystemExceptionオブジェクトを指定します。
CORBA::CompletionStatus CORBA::SystemException::completed()
このメンバー関数は、この例外の完了ステータスを返します。
CORBA::SystemException::completed( CORBA::CompletionStatus Completed)
このメンバー関数は、この例外の完了ステータスを設定します。Completed引数には、この例外の完了ステータスを指定します。
CORBA::ULong CORBA::SystemException::minor()
このメンバー関数は、この例外のマイナー・コードを返します。
CORBA::SystemException::minor (CORBA::ULong Minor)
このメンバー関数は、この例外のマイナー・コードを設定します。minor引数は、この例外の新しいマイナー・コードを指定します。minorフィールドは実装固有の値で、アプリケーションが例外を識別するために使用します。
CORBA::SystemException * CORBA::SystemException::_narrow ( CORBA::Exception_ptr Exc)
このメンバー関数は、指定の例外がシステム例外に限定可能かどうかを判別します。Exc引数には、限定する例外を指定します。
指定の例外がシステム例外の場合、このメンバー関数はシステム例外へのポインタを返します。指定の例外がシステム例外ではない場合、0(ゼロ)が返されます。
CORBA::UserException * CORBA::UserException::_narrow( CORBA::Exception_ptr Exc)
このメンバー関数は、指定の例外がユーザー例外に限定可能かどうかを判別します。Exc引数には、限定する例外を指定します。
指定の例外がユーザー例外の場合、このメンバー関数はユーザー例外へのポインタを返します。指定の例外がユーザー例外ではない場合、0(ゼロ)が返されます。