Системное программное обеспечение персональных ЭВМ

         

Расширенная информация об ошибке.


14.2. Расширенная информация об ошибке.

Начиная с DOS 2.0, те функции DOS, при выполнении которых могут возникать ошибки, индицируют наличие ошибки установкой флага CY, при этом регистр AX содержит код ошибки. Следующие коды ошибок могут возвращаться в регистре AX: 1-ошибка номера функции DOS10-ошибка в окружении 2-файл не найден11-ошибка формата 3-путь не найден12-ошибка кода доступа 4-слишком много открытых файлов13-ошибка даты 5-доступ отвергнут14-(не используется) 6-ошибка дескриптора файла15-задан неверный диск 7-ошибка в MCB16-удаление текущего оглавления 8-нехватка памяти17-не то же самое устройство 9-ошибка адреса блока памяти18-больше нет искомых файлов

Начиная с версии DOS 3.0 имеется функция 0x59, выдающая расширенную информацию об ошибке. При обращении к этой функции регистр BX должен содержать номер версии DOS (0 - для версии 3). На выходе функции регистр AX содержит расширенный код ошибки, BH - класс ошибки, BL - код предполагаемых действий, CH - локализацию ошибки.

Расширенные коды ошибок:



19 - 36-соответствуют кодам 0 - 17, передаваемым обработчику критической ошибки в регистре DI;
36 - 49-зарезервировано;
50 - 60-ошибки, связанные с работой в сети;
61 - 63-ошибки спуллинга печати;
55 - 72-ошибки, связанные с работой в сети;
73 - 79-зарезервировано;
80-файл уже существует;
81-зарезервировано;
82-невозможно создать элемент каталога;
83-сбой при обработке прерывания по критической ошибке;
84-слишком много перенаправлений;
85-повторяющееся перенаправление;
86-неправильный пароль;
87-неправильный параметр;
88-ошибка в данных сети.

Классы ошибок:

1-нехватка ресурса (памяти, описателей файлов и т.п.);
2-временная ситуация;
3-превышение пользователем своих полномочий;
4-внутренняя ошибка DOS;
5-ошибка оборудования;
6-системная ошибка DOS;
7-ошибка применения (некорректный запрос, неверные параметры и т.п.);
8-запрошенный файл или другой объект найден;
9-неверный формат файла, диска и т.п.;
10-файл или другой объект захвачен другим пользователем;
11-ошибка носителя;
12-файл или другой объект уже существует;
13-неивестный класс.
<
Предполагаемые действия:
1-повторить операцию несколько раз;
2-повторить операцию после задержки;
3- повторить ввод данных для DOS пользователем;
4-снять задачу, выполнив операции завершения (закрытие файлов, обновление индексов, освобождение памяти и т.п.);
5-снять задачу, не выполняя операции завершения;
6-игнорировать ошибку;
7-повторить операцию после выполнения пользователем каких-то действий.

Локализация ошибки:
1-место ошибки не определено;
2-ошибка на блочном устройстве;
3-зарезервировано;
4-ошибка на символьном устройстве;
5-ошибка в памяти.

Обработчик критической ошибки в примере 14.1 обращается к функции 0x59 и запоминает также расширенную информацию об ошибке. Чтобы не перегружать пример строковыми константами на печать выводятся только коды ошибки, класса и т.д., а не смысловые сообщения.

Содержание раздела