Читайте также: |
|
Обработка исключений
Цель работы. Изучить способы обработки исключений при некорректном вводе информации.
Краткие сведения из теории
1. Механизм обработки исключений в C++Builder
При разработке приложений часто возникают ситуации, при которых ответственность за правильность выполнения операций, операторов и даже отдельных функций целиком возлагается на программиста. Арифметические вычисления (деление на нуль), преобразования типа, работа с индексами и адресами, корректная формулировка условий в операторах управления, работа с потоками ввода-вывода – это далеко не полный перечень неконтролируемых в C++ ситуаций.
Ошибки времени выполнения, возникающие непосредственно в ходе выполнения программы, в терминах объектно-ориентированного программирования называются исключительными ситуациями. Исключительные ситуации – это события, которые прерывают нормальный ход выполнения программы
Исключение – это объект специального вида, характеризующий возникшую в программе исключительную ситуацию.
Различают синхронные и асинхронные исключительные ситуации.
Синхронная исключительная ситуация возникает непосредственно в ходе выполнения программы, причем ее причина заключается непосредственно в действиях, выполняемых самой программой.
Асинхронные исключительные ситуации непосредственно не связаны с выполнением программы. Их причинами могут служить аппаратно возбуждаемые прерывания (например, сигналы от таймера), сообщения, поступающие от внешних устройств или даже от локальной сети.
Язык C++ определяет стандарт обслуживания исключений в рамках объектно-ориентированного программирования. C++Builder предусматривает специальные механизмы для обработки исключений (ошибок), которые могут возникнуть при использовании Библиотеки Визуальных Компонентов. C++Builder также поддерживает обработку исключений самой операционной системы и модель завершения работы приложения.
Когда во время выполнения программы встречается ненормальную ситуацию, на которую она не была рассчитана, можно передать управление другой части программы, способной справиться с этой проблемой, и либо продолжить выполнение, либо завершить работу. В точке возникновения исключения автоматически собирается информация, которая может оказаться полезной для диагностики причин, приведших к нарушению нормально хода выполнения программы. Можно определить обработчик исключения – специальный фрагмент кода, выполняющий необходимые действия перед завершением программы.
Обслуживаются только так называемые синхронные исключения, которые возникают внутри программы. Такие внешние события, как нажатие клавиш Ctrl+С, исключениями не считаются.
Наиболее приемлемый путь борьбы с исключениями – отлавливание и обработка их с помощью блоков try…catch. Синтаксис этих блоков следующий:
Try
{
// Критический код, выполнение которого может привести к возникновению ошибки времени выполнения;
}
Дата добавления: 2015-07-19; просмотров: 57 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Пример программы | | | Catch (TypeToCatch ExceptionToCatch2) |