[Enterprise Extensions only]

ExceptionDef::describe

Overview Returns a structure containing information about a CORBA::ExceptionDef Interface Repository object.
Original interface CORBA module: ExceptionDef Interface
Exceptions CORBA::SystemException


Intended Usage

The inherited describe operation returns a structure (CORBA::Contained::Description) that contains information about a CORBA::ExceptionDef Interface Repository object. The CORBA::Contained::Description structure has two fields: kind (CORBA::DefinitionKind data type), and value (CORBA::Any data type).

The kind of definition described by the returned structure is provided using the kind field, and the value field is a CORBA::Any that contains the description that is specific to the kind of object described. When the describe operation is invoked on an exception (CORBA::ExceptionDef) object, the kind field is equal to CORBA::dk_Exception and the value field contains the CORBA::ExceptionDescription structure.

IDL Syntax

  struct ExceptionDescription
     {
        Identifier name;
        RepositoryId id;
        RepositoryId defined_in;
        VersionSpec version;
        TypeCode type;
     };
  struct Description
     {
        DefinitionKind kind;
        any value;
     };
  Description describe ();

Input parameters

None.

Return values

Description *
The returned value is a pointer to a CORBA::Contained::Description structure. The memory is owned by the caller and can be removed by invoking delete.

Example

  // C++
     // assume that 'this_exception' has already been initialized
     CORBA::ExceptionDef * this_exception;
 
     // retrieve a description of the exception
     CORBA::ExceptionDef::Description * returned_description;
     returned_description = this_exception-> describe ();
 
     // retrieve the exception description from the returned description 
     // structure
     CORBA::ExceptionDescription * exception_description;
     exception_description = 
        (CORBA::ExceptionDescription *) returned_description value.value ();