Status zakończenia i drugorzędne kody

Dwa elementy danych są powiązane z każdym wyjątkiem systemowym, są one opisane w tej sekcji.

  • Status zakończenia, który jest typem wyliczeniowym, który ma trzy wartości: COMPLETED_YES, COMPLETED_NO i COMPLETED_MO¿E. Te wartości wskazują, że operacja została wykonana w całości, że operacja nie została wykonana, albo że nie można określić stanu wykonania.
  • Długa liczba całkowita, nazywana kodem podrzędnym, która może być ustawiona na wartość określoną dla dostawcy brokera ORB. CORBA określa również wartość wielu podrzędnych kodów.
Zwykle status ukończenia nie jest bardzo przydatny. Jednak kod poboczny może być istotny, gdy brakuje stosu wywołań. W wielu przypadkach kod podrzędny identyfikuje dokładną lokalizację kodu brokera ORB, w którym zgłaszany jest wyjątek, i może być używany przez zespół serwisowy dostawcy w celu szybkiego lokalizowania problemu. Jednak w przypadku standardowych kodów pomocniczych CORBA nie zawsze jest to możliwe. Na przykład:
org.omg.CORBA.OBJECT_NOT_EXIST: SERVANT_NOT_FOUND   minor code: 4942FC11  completed: No

Drugorzędne kody są zwykle wyrażane w notacji szesnastkowej (z wyjątkiem podrzędnych kodów Oracle, które są w notacji dziesiętnej), które reprezentują cztery bajty. Organizacja OMG przypisała każdemu dostawcy zakres 4096 kodów podrzędnych. Zakres kodu drugorzędnego specyficzne dla dostawcy IBM® to 0x4942F000 do 0x4942FFFF. Kody podrzędne CORBA podaje informacje diagnostyczne dla typowych kodów podrzędnych.

Wyjątki systemowe mogą również zawierać łańcuch opisujący wyjątek i inne użyteczne informacje. Ten łańcuch zostanie wyświetlony podczas interpretowania stosu wywołań.

Broker ORB ma tendencję do odwzorowywania wszystkich wyjątków języka Java na wyjątki CORBA. Wyjątek środowiska wykonawczego jest odwzorowywany na wyjątek systemowy CORBA, podczas gdy sprawdzony wyjątek jest odwzorowywany na wyjątek użytkownika CORBA.

Więcej wyjątków niż wyjątki CORBA mogą być generowane przez komponent brokera ORB w błędzie kodu. Należy wziąć pod uwagę wszystkie niezaznaczone wyjątki i błędy języka Java, a także inne, które są powiązane z narzędziami ORB rmic i idlj. W tym przypadku jedynym sposobem określenia, czy problem znajduje się w brokerze ORB, jest sprawdzenie wygenerowanego stosu wywołań i sprawdzenie, czy dane obiekty należą do pakietów brokera ORB.