Книга: Системное программирование в среде Windows

Резюме: последовательность обработки исключений

Резюме: последовательность обработки исключений

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

1. Возникло исключение; в данном случае это деление на ноль.

2. Управление передается обработчику исключений, в котором вычисляется выражение фильтра. Сначала вызывается функция GetExceptionCode, а затем ее возвращаемое значение используется в качестве аргумента функции Filter.

3. Функция фильтра выполняет действия, определяемые значением кода исключения.

4. В данном случае значением кода исключения является EXCEPTION_INT_DIVIDE_BY_ZERO.

5. Функция фильтра устанавливает, что должен быть выполнен код обработчика исключений, и поэтому возвращает значение EXCEPTION_EXECUTE_HANDLER.

6. Выполняется код обработчика исключений, связанного с оператором _except.

7. Управление передается за пределы блоков try и except. 


Рис. 4.2. Последовательность операций при обработке исключений

Оглавление книги


Генерация: 1.148. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз