| |
1-26 C-Sprache, die August 1997 Abbildet 1 1,22 Behandlung Von Ausnahmen Da die C-Sprache nicht gebürtige Ausnahmebehandlungsunterstützung gibt, Anwendungen führen Sie und empfangen Sie Ausnahmen über das spezielle CORBA_Environment Parameter geführt zu jeder IDL-Betrieb. Das CORBA_Environment schreiben Sie ist teilweise undurchlässig; das c-declara- tion enthält mindestens das folgende: /*c*/ typedefstruct CORBA_Environment { CORBA_exception_type-_ Major; ... } CORBA_Environment; Nach Rückkehr von einer Anforderung, der _ Major Feld zeigt ob das Anforderungtermi- an nated erfolgreich; _ Major kann einen der Werte CORBA_NO_EXCEPTION haben CORBA_USER_EXCEPTION oder CORBA_SYSTEM_EXCEPTION ; wenn der Wert ein von ist die letzten zwei, dann alle mögliche Ausnahmeparameter, die durch den Gegenstand signalisiert werden, können erreicht werden. Fünf Funktionen werden auf einem CORBA_Environment definiert Struktur für das Zugänglich machen Ausnahmeinformationen. Ihre Unterschriften sind: /*c*/ extern Lücke CORBA_exception_set( CORBA_Environment * ev, CORBA_exception_type-Major, CORBA_char * except_repos_id, Lücke * Param ); extern CORBA_char * CORBA_exception_id( CORBA_Environment * ev ); extern Lücke * CORBA_exception_value(CORBA_Environment * ev); extern Lücke CORBA_exception_free(CORBA_Environment * ev); extern CORBA_any * CORBA_exception_as_any( CORBA_Environment * ev ); CORBA_exception_set() läßt eine Methodenimplementierung eine Ausnahme aufwerfen. Das ev Parameter ist der Klimaparameter, der in die Methode geführt wird. Der Anrufer muß einen Wert für den Hauptparameter liefern. Der Wert des Hauptparameters begrenzt die anderen Parameter im Anruf, wie folgt: Wenn der Major Parameter hat den Wert CORBA_NO_EXCEPTION ist dieses ein Normal Resultat zum Betrieb. In diesem Fall beides except_repos_id und Param muß UNGÜLTIG sein. Merken Sie, daß er nicht ist notwendig hervorzurufen CORBA_exception_set() ein normales Resultat anzeigen; es ist die Rückstellung Verhalten, wenn die Methode einfach zurückgeht. Für irgendeinen anderen Wert des Majors er spezifiziert entweder ein verbraucherbestimmtes oder System Ausnahme. Das except_repos_id Parameter ist das Darstellen des Behälters Identifikation die Ausnahmeart. Wenn die Ausnahme erklärt wird, um Mitglieder zu haben, der Param Parameter muß die Adresse eines Falls des Ausnahmestructenthaltens sein die Parameter entsprechend der C-Sprache, die, gezwungen zu einer Lücke abbildet * . Diesbezüglich |  |
|
| |
|
|