Исключения разработчика

Исключения разработчика

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

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

trigger (code: INTEGER; message: STRING)

-- Прерывает выполнение текущей программы, выбрасывая исключение с кодом

-- code и связанным текстовым сообщением.

developer_exception_code: INTEGER

-- Код последнего исключения разработчика

developer_exception_name: STRING

-- Имя, ассоциированное с последним исключением разработчика

is_developer_exception: BOOLEAN

-- Было ли последнее исключение исключением разработчика?

is_developer_exception_of_name (name: STRING): BOOLEAN

-- Имеет ли последнее исключение разработчика имя name?

ensure

Result := is_developer_exception and then

equal (name, developer_exception_name)

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

set_developer_exception_context (c: ANY)

-- Определить c как контекст, связанный с последовательностью

-- исключений разработчика (причина вызова компонента trigger).

require

context_exists: c /= Void

developer_exception_context: ANY

-- Контекст, установленный последним вызовом

set_developer_exception_context

-- void, если нет такого вызова.

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

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

5.2.2 Представление разработчика

Из книги ИНФОРМАЦИОННАЯ ТЕХНОЛОГИЯ ОЦЕНКА ПРОГРАММНОЙ ПРОДУКЦИИ ХАРАКТЕРИСТИКИ КАЧЕСТВА И РУКОВОДСТВА ПО ИХ ПРИМЕНЕНИЮ автора Автор неизвестен

5.2.2 Представление разработчика Процесс создания требует от пользователя и разработчика использования одних и тех же характеристик качества программного обеспечения, так как они применяются для установления требований и приемки. Когда разрабатывается программное


15 Инструментальные средства: тактические приемы разработчика

Из книги Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT автора Фролов Александр Вячеславович

15 Инструментальные средства: тактические приемы разработчика Unix дружественна к пользователю, но привередлива в выборе друзей. —Аноним 15.1. Операционная система, дружественная к разработчику За операционной системой Unix давно закрепилась репутация хорошей среды для


Тип исключения

Из книги Цифровой журнал «Компьютерра» № 37 [04.10.2010 — 10.10.2010] автора Журнал «Компьютерра»

Тип исключения Если вызывается исключение, для которого отсутствует обработчик и не определен универсальный обработчик исключений всех типов, тогда вызывается функция terminate из стандартной библиотеки. Она вызывает функцию abort, завершающую работу программы.Вы можете


Google купил разработчика новой экранной клавиатуры Михаил Карпов

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

Google купил разработчика новой экранной клавиатуры Михаил Карпов Опубликовано 04 октября 2010 года Компания Google приобрела стартап Blind Type, который занимается разработкой метода более точного и удобного ввода текста на виртуальных клавиатурах


3.1.9. Входные барьеры для разработчика

Из книги TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security) автора Фейт Сидни М

3.1.9. Входные барьеры для разработчика Другой важной характеристикой, по которой различают операционные системы, является совокупность сложностей, препятствующих простым пользователям стать разработчиками. Существует два определяющих фактора. Одним из них является


15 Инструментальные средства: тактические приемы разработчика

Из книги Внедрение SAP R/3: Руководство для менеджеров и инженеров автора Кале Вивек

15 Инструментальные средства: тактические приемы разработчика Unix дружественна к пользователю, но привередлива в выборе друзей. —Аноним 15.1. Операционная система, дружественная к разработчику За операционной системой Unix давно закрепилась репутация хорошей среды для


10.14 Соответствие требованиям разработчика

Из книги Программирование на языке Ruby [Идеология языка, теория и практика применения] автора Фултон Хэл

10.14 Соответствие требованиям разработчика Текущий стандарт TCP требует, чтобы реализации твердо придерживались процедуры медленного старта при инициализации соединения и использовали алгоритмы Керна и Джекобсона для оценки тайм-аута повторной отправки данных и


АРМ Разработчика АВАР/4

Из книги Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ автора Борри Хелен

АРМ Разработчика АВАР/4 Все объекты АРМ Разработчика необходимо генерировать, прежде чем они активизируются в работающей системе.Все объекты АРМ Разработчика АВАР/4 — такие, как модели данных и процессов, словарь АВАР/4, отчеты, динамические программы, библиотеки


1.2.7. Исключения

Из книги Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript автора Розенцвейг Гэри


Приложение A Ресурсы сети Internet для Flash-разработчика

Из книги Идеальный программист. Как стать профессионалом разработки ПО автора Мартин Роберт С.

Приложение A Ресурсы сети Internet для Flash-разработчика Итак, вы уже прочли всю книгу, изучили каждый пример и на его основе создали собственную игру и все еще хотите получить дополнительную информацию о Flash? Что ж, вы без особого труда сможете удовлетворить свою


Жизнь разработчика в тестировании

Из книги автора

Жизнь разработчика в тестировании Когда компания только появляется, тестировщиков в ней, как правило, нет. Точно так же как нет руководителей проектов, системных администраторов и других должностей. Каждый сотрудник выполняет все эти роли одновременно. Мы любим


Как отличить тестировщика от разработчика в тестировании Джейсон Арбон

Из книги автора

Как отличить тестировщика от разработчика в тестировании Джейсон Арбон Роли разработчика в тестировании и инженера по тестированию взаимо­связаны, но между ними есть фундаментальные различия. Я был на обеих позициях и управлял обеими ролями. Взгляните на списки,


Будущее разработчика в тестировании

Из книги автора

Будущее разработчика в тестировании Если коротко, то мы думаем, что у разработчиков в тестировании нет будущего. Все-таки они — разработчики, и точка. Google платит им как разработчикам и оценивает их результаты по тем же критериям, что и разработчиков. Они даже называются


Роль разработчика

Из книги автора

Роль разработчика Работа по реализации некоторого аспекта системы начинается тогда, когда для этого аспекта готовы все приемочные тесты. Разработчики выполняют приемочные тесты и убеждаются в том, что те не проходят. Затем они связывают приемочные тесты с системой и