10.5 пакет ada.exceptionsВ языке имеется ряд предопределенных библиотечных пакетов, связанных с исключениями. Это , например, пакет IO_EXCEPTIONS связанный в исключениями при вводе-выводе. Рассмотрим предопределенный пакет ADA.EXCEPTIONS . Он предоставляет пользователю дополнительные ресурсы в виде типов, констант и процедур для работы с исключениями. Спецификация пакета ADA.EXCEPTIONS : package ADA.EXCEPTIONS is type Exceptionjd is private; Nulljd : constant Exceptionjd ; function Exception_Name (Id : Exceptionjd) return String ; type Exception_Occrrence is limited private; type Exception_Occurrence_Access is access all ExceptionjDccurrence; NullJDccurrence : constant Exception_Occurrence; procedure RaiseJException ( E : in Exceptionjd ; Message : in String ); function ExceptionJVIessage (X : ExceptionjDccurrence ) return String; procedure Reraise _Occurrence( X : in ExceptionJDccurrence ); Ада 95. Введение в программирование 113 Глава 10. Исключения
function Exceptionjdentity ( X : Exception_Occurence) return Exception; function Exception_Name ( X : ExceptionjDccurence ) return String; function Exception_lnformation( X : ExceptionjDccurence ) return String ; procedure Save_Occurence( Target: out Exception_Occuremce ; Source: in ExceptionjDccurence); function SavejDccurence ( Source : ExceptionjDccurence ) return ExceptionjDccurence_Access; private ... - - не определены в языке end ADA . EXCEPTIONS ; Пользователь может использовать ресурсы этого пакета при описании новых видов исключений и их обработчиков. Ш СОВЕТЫ: * Экспортируйте (делайте видимыми для пользователя) имена всех исключений, которые могут быть возбуждены. * В пакете описывайте каждое исключение, которое может быть возбуждено каждой подпрограммой или входом задачи,описанных в пакете. * Если возможно, избегайте изменения состояния информации в модуле перед возбуждением исключения. * Не возбуждайте предопределенные исключения или предопределенные реализацией исключения. * Используйте исключения при определении абстракций. * Не используйте оператор goto в исключениях и обработчиках. * Используйте в обработчиках информацию, полученную с помощью процедур пакета Ada . Exceptions. 4 Обрабатывайте все исключения (пользовательские и предопределенные ) * Используйте оператор блока для локализации объединения частей программы с обработчиками. ИЗМЕНЕНИЯ: О Исключение NumericJError переименовано в ConstraintJError. О Обработчик исключения можно размещать непосредственно в операторе Accept. О Добавлен пакет Ada . Exception для работы с исключениями. |
| Оглавление| |