Глава 10. исключенияНадёжность - главная отличительная особенность языка, которая характеризовала Аду 83 и получила дальнейшее развитие в Аде 95. Исключения - одно из основных средств языка , обеспечивающих его высокую надежность. Все ошибки в программах можно разделить на те, которые возникают на этапе компиляции программы, и те, которые возникают на этапе её выполнения. На повышение эффективности выявление ошибок на этапе компиляции направлены многие механизмы языка, например, строгая типизация. Однако, отсутствие ошибок на этапе компиляции не гарантирует, что ошибки не возникнут, при выполнении программы. В Аде имеются средства, позволяющие обрабатывать ошибки, возникающие во время выполнения программы, а также реагировать на специально выбранные программные события. Они основаны на механизме, который получил название механизм исключений ( исключительных ситуаций). Концепция исключений в языке базируется на следующих понятиях и действиях^ 1 . При_выполнении программы в случае возникновения исключительной ситуации ( ошибки или заранее определенные события ) нормальное выполнение программы прекращается и возбуждается исключение. 2. Устанавливается связь между возникшим исключением и заранее определенным ( или предопределенным ) обработчиком данного исключения. 3. Управление передается обработчику исключения. 4. По завершению обработки исключения обработчиком управление не возвращается в точку возникновения исключения. Обработчик исключения размещается в конце блока, подпрограммы, пакеты, задачи, защищенного модуля, оператора accept. Если в программном элементе, где произошла исключительная ситуация, отсутствует обработчик исключения, то возможны два варианта: • работа этого программного элемента завершается аварийно; • обработка исключения осуществляется в другой части программы. Во втором случае выполняется поиск соответствующего обработчика исключения в других частях программы и передача ему управления. Такой процесс получил название распространение исключения. Ада 95. Введение в программирование 106 Глава 10. Исключения 107
Наличие в языке средств работы с исключениями повышает эффективность языка при разработке систем реального времени, в которых ошибки, возникающие при выполнении программы, не должны приводить к остановке в работе программы, управляющей, например, некоторым объектом. |
| Оглавление| |