Книга: Учебное пособие по курсу «Нейроинформатика»
Обработка ошибок
Разделы на этой странице:
Обработка ошибок
Схема обработки ошибок достаточно проста по своей идее — каждый новый обработчик ошибок может обрабатывать только часть ошибок, а обработку остальных может передать ранее установленному обработчику. Пользователь может организовать обработку ошибок и не прибегая к установке обработчика ошибок — обработчик ошибок по умолчанию почти во всех случаях устанавливает номер последней ошибки в переменную Error, которая может быть считана с помощью запроса GetError и обработана прямо в компоненте, выдавшем запрос.
Если обработчик ошибок устанавливает номер последней ошибки в переменной Error, то все запросы, поступившие после момента установки, завершаются неуспешно. Это состояние сбрасывается при вызове запроса «дать номер ошибки».
Процедура обработки ошибок
Процедура обработки ошибок должна удовлетворять следующим требованиям:
• Это должна быть процедура с дальним типом адресации. Формат описания процедуры обработки ошибок
Far;ErrorFunc(Long ErrorNumber)
• После обработки ошибок процедура может вызвать ранее установленный обработчик ошибок. Адрес ранее установленного обработчика ошибок процедура обработки ошибок получает в ходе следующей процедуры:
• Вызов процедуры с нулевым номером ошибки означает, что в следующем вызове будет передан адрес старой процедуры обработки ошибок.
• Значение аргумента ErrorNumber при вызове, следующем непосредственно за вызовом с нулевым номером ошибки, должно интерпретироваться как адрес старой процедуры обработки ошибок.
Ниже приведено описание запросов, связанных с обработкой ошибок и исполняемых макрокомпонентом нейрокомпьютер.
Установить обработчик ошибок (OnError)
Описание запроса:
Pascal:
Function OnError(NewError: ErrorFunc): Logic;
C:
Logic OnError(ErrorFunc NewError)
Описание аргументов:
NewError — адрес новой процедуры обработки ошибок.
Назначение — устанавливает новый обработчик ошибок.
Описание исполнения.
1. Если Error <> 0, то выполнение запроса прекращается.
2. Вызов NewError с аргументом 0 — настройка на установку цепочки обработки ошибок.
3. Вызов NewError с аргументом ErrorManager (вместо длинного целого передается адрес старой процедуры обработки ошибок).
4. ErrorManager:= NewError
Дать номер ошибки (GetError)
Описание запроса:
Pascal:
Function GetError: Integer;
C:
Integer GetError()
Назначение — возвращает номер последней необработанной ошибки и сбрасывает ее.
Описание исполнения.
1. GetError:= Error
2. Error:= 0
Списки ошибок, возникающих в различных компонентах, даны в разделах «Ошибки компоненты …», в соответствующих разделах. Все номера ошибок каждого компонента являются трехзначными числами и начинаются с номера компонента, указанного в колонке «Ошибка» табл. 16.
- Перехват ошибок
- Обработка перехваченных ошибок
- ГЛАВА 4 Обработка исключений
- B1.7. Функции обработки ошибок
- 26.7. Обработка дополнительных аргументов
- Проверка диска на наличие ошибок
- А.2. Поиск ошибок в динамической памяти
- Векторная обработка исключений
- Обработка исключений
- 2.2. Базовая обработка командной строки
- Пример: обработка ошибок
- Пример: обработка ошибок как исключений