Для студентов згиа специальности 080403 ”Программное обеспечение




НазваниеДля студентов згиа специальности 080403 ”Программное обеспечение
страница14/34
Дата публикации25.02.2013
Размер3.71 Mb.
ТипМетодическое пособие
uchebilka.ru > Информатика > Методическое пособие
1   ...   10   11   12   13   14   15   16   17   ...   34
^

2.11.4 Генерация программных исключений


Механизм структурной обработки исключений в Windows позволяет генерировать программные исключения при помощи функции RaiseException, которая имеет следующий прототип:

VOID RaiseException(

DWORD dwExceptionCode, // код исключения

DWORD dwExceptionFlags, // флаг возобновляемого исключения

DWORD nNumber Of Arguments, // количество аргументов

CONST ULONG_PTR *lpArgumens // массив аргументов

);

Эта функция выбрасывает исключение с кодом, заданным параметром dwExceptionCode. Отметим, что код исключения следует формировать в соответствии с правилами, принятыми в операционных системах Windows. Формат кода ошибки в Windows определен в файле winerror.h и имеет структуру, которая описана в табл. 2.12.

Табл. 2.12 Формат кода ошибки

Биты

Назначение

Описание

0 – 15

Код ошибки

Устанавливает пользователь, могут принимать любые значения

16 – 27

Код подсистемы, в которой произошла ошибка

Устанавливает пользователь, могут принимать любые значения

28

Зарезервирован системой

Всегда сбрасывается системой в ноль

29

Флаг системной или поль-зовательской ошибки

Может принимать одно из двух значений:

0 – системная ошибка;

1 – пользовательская ошибка

30 – 31

Код серьезности

Могут принимать следующие значения: 0 – успех; 1 – информация;

2 – предупреждение; 3 – ошибка

Остальные параметры функции RaiseException имеют следующие значения.

Параметр dwExceptionFlag может принимать одно из двух значений: 0 или EXCEPTION_NONCONTINUABLE. Значение 0 означает, что после исключения возможно восстановление программы, вызвавшей это исключение. Если же параметр dwExceptionFlag имеет значение EXCЕРTION_NONCONTINUABLЕ, то выполнение программы не может быть возобновлено после исключения. В случае попытки возобновления программы система сгенерирует исключение с кодом EXCEPTION_NONCONTINUABLE_EXCEPTION.

Параметр nNumberOfArguments указывает количество параметров, передаваемых функции фильтра из блока обработки исключения. Это значение не может превышать величину EXCEPTION_MAXIMUM_PARAMETERS.

Параметр lpArguments задает параметры, которые передаются в функцию фильтра из блока обработки исключения. Это значение может быть установлено В NULL. В этом случае параметр nNumberOfArguments игнорируется.

В листинге 2.14 приведена программа, которая генерирует программное исключение и передает функции фильтра два параметра.

^ Листинг 2.14 Генерация программного исключения [5]

#include <windows.h>

#include

EXCEPTION_RECORD er;

DWORD filter_function(EXCEPTION_POINTERS *р)

{

// сохраняем содержимое структуры EXCEPTION_RECORD

er = *(p->ExceptionRecord);

// передаем управление обработчику исключений

return EXCЕРТION_EXECUTE_HANDLER;

}

int main()

{

int а = 10;

int b = 20;

DWORD Arguments[2];
__try {

if (a < b) {

// устанавливаем аргументы исключения

Arguments[0] = a;

Arguments [1] = b;

// генерируем исключение

RaiseException(0xFF, 0, 2, Arguments);

}

else

{

cout <<"There is no any exception." << endl;

cout << "a - b = " << (a - b) << endl;

}

}

__except(filter_function(GetExceptionInformation()))

{

cout << "There is an exception." << endl;
if (er.ExceptionCode == 0xFF) {

cout << "Exception code = " << hex << er. ExceptionCode << endl;

cout << "Number parameters = " << dec << er. NumberParameters << endl;

cout << "Parameter[0] = " << er.ExceptionInformation[0] << endl;

cout << "Parameter[1] = " << er.ExceptionInformation[1] << endl;

}

}

return 0;

}

1   ...   10   11   12   13   14   15   16   17   ...   34

Похожие:

Для студентов згиа специальности 080403 ”Программное обеспечение iconМетодические указания к лабораторному практикуму для студентов згиа...
Методические указания к лабораторному практикуму для студентов згиа специальности 080403 «Программное обеспечение автоматизированных...

Для студентов згиа специальности 080403 ”Программное обеспечение iconМетодические указания для студентов специальности 080403
Згиа [8, 10] и других вузов [4]. Наиболее полно описаны курсовые, дипломные и квалификационные работы, однако большинство положений...

Для студентов згиа специальности 080403 ”Программное обеспечение iconМетодические указания к курсовой работе по дисциплине «Системное...
Методические указания к курсовой работе по дисциплине «Системное программирование и операционные системы» для студентов специальности...

Для студентов згиа специальности 080403 ”Программное обеспечение iconПравила использования программного обеспечения в рамках программы...
Используя программное обеспечение вы тем самым подтверждаете свое согласие придерживаться этих правил. Если вы не согласны, не используйте...

Для студентов згиа специальности 080403 ”Программное обеспечение iconМетодические указания по выполнению лабораторных работ по курсу “
Информационные управляющие системы и технологии, 080403 – Программное обеспечение автоматизированных систем

Для студентов згиа специальности 080403 ”Программное обеспечение iconКлассификация программного обеспечения
В отличие от аппаратного обеспечения, программы, которые выполняются на нем, неосязаемы и классифицируются как программное обеспечение....

Для студентов згиа специальности 080403 ”Программное обеспечение iconКурсовая работа выполняется на основании 'Задания на курсовую работу'...
Целью курсовой работы является закрепление практических навыков самостоятельной постановки и решения задачи обработки данных с помощью...

Для студентов згиа специальности 080403 ”Программное обеспечение icon1. Классификация программного обеспечения
Назначением ЭВМ является выполнение программ. Программа содержит команды, определяющие порядок действии компьютера. Совокупность...

Для студентов згиа специальности 080403 ”Программное обеспечение iconОпорный конспект лекций по дисциплине Компьютерная графика для специальности...
Тема. Основные понятия компьютерной графики. Аппаратное и программное обеспечение

Для студентов згиа специальности 080403 ”Программное обеспечение iconМетодические указания и задание к выполнению курсового проекта по...
Методические указания и задание к выполнению курсового проекта по дисциплине «Алгоритмическое и программное обеспечение электротехнических...

Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
uchebilka.ru
Главная страница


<