Spec-Zone .ru
спецификации, руководства, описания, API
Содержание документации

Исключения

У CORBA есть два типа исключений: стандартные системные исключения, которые полностью определяются OMG и пользовательскими исключениями, которые определяются отдельным прикладным программистом. Исключения CORBA немного отличаются от объектов исключения Java, но те различия в значительной степени обрабатываются в отображении от IDL до Java.

Темы в этом разделе включают:

Различия Между CORBA и Исключениями Java

Чтобы определить исключение в IDL, интерфейсный разработчик использует ключевое слово повышений. Это подобно спецификации бросков в Java. Когда Вы используете ключевое слово исключения в IDL, Вы создаете определяемое пользователем исключение. Стандартные системные исключения нуждаются не (и не может) быть определенным этот путь.

Системные Исключения

CORBA определяет ряд стандартных системных исключений, которые обычно повышаются библиотеками ШАРА, чтобы сигнализировать системные состояния ошибки как:

Все операции IDL могут выдать системные исключения когда вызвано. Интерфейсный разработчик не должен определить ничего, чтобы позволить операциям в интерфейсе выдать системные исключения - возможность является автоматической.

Это имеет смысл, потому что независимо от того, насколько тривиальный реализация работы, потенциал вызова работы, прибывающего от клиента, который находится в другом процессе, и возможно (вероятно), на другой машине, означает, что целый диапазон ошибок возможен.

Поэтому, клиент CORBA должен всегда ловить системные исключения CORBA. Кроме того разработчики не могут положиться на компилятор Java, чтобы уведомить их относительно системного исключения, которое они должны поймать, потому что системные исключения CORBA являются потомками java.lang.RuntimeException.

Системная Структура Исключения

У всех системных исключений CORBA есть та же самая структура:

exception <SystemExceptionName> { // descriptive of error
    unsigned long minor;          // more detail about error
    CompletionStatus completed;   // yes, no, maybe
}
 

Системные исключения являются подтипами java.lang.RuntimeException через org.omg.CORBA.SystemException:

Незначительные Коды

У всех системных исключений CORBA есть незначительное поле кода, число, которое обеспечивает дополнительную информацию о природе отказа, который вызвал исключение. Незначительные значения кода не определяются OMG; каждый поставщик ШАРА определяет соответствующие незначительные коды для той реализации. Для значения незначительных кодов, брошенных ШАРОМ Java, см. Незначительные значения кода.

Состояние завершения

У всех системных исключений CORBA есть поле состояния завершения, указывая на состояние работы, которая выдавала исключение. Коды завершения:

COMPLETED_YES
Объектная реализация завершила обработку до повышаемого исключения.
COMPLETED_NO
Объектная реализация не была вызвана до повышаемого исключения.
COMPLETED_MAYBE
Состояние вызова неизвестно.

Пользовательские Исключения

Пользовательские исключения CORBA являются подтипами java.lang.Exception через org.omg.CORBA.UserException:

Каждое определяемое пользователем исключение, определенное в IDL, приводит к сгенерированному классу исключений Java. Эти исключения полностью определяются и реализуются программистом

Незначительные Значения Кода

Системные исключения у всех есть поле, незначительное, который позволяет поставщикам CORBA обеспечивать дополнительную информацию о причине исключения. Для списка стандартного OMG незначительные исключения кода (OMGVMCID) см. веб-сайт Группы по управлению объектами.

Часть наиболее распространенного Sun незначительные исключения кода является следующим:

Если ни одно из этих предложений не работает на Вас, или если Вы встречаетесь с различным Sun незначительное исключение кода, повесили объявление к форуму разработчика в Oracle Forum Home.

Запрашивая значение незначительного кода, включайте следующую информацию:


Oracle и/или его филиалы Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.
Свяжитесь с Нами