скрыть

скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Google  
 

Ошибки времени выполнения



Виндоват - испраглюсь!


type
str31  = string[31];


function ErrMeaning (ResultCode: Integer): str31;
{----------------------------------------------------------}
{ Возвращает строковое значение по коду ошибки.            }
{----------------------------------------------------------}

const
NumOfEntries = 108;
type
ErrorEntry = record
Code: Integer;
Meaning: str31;
end;
ErrorMeaningsArray = array [1..NumOfEntries] of ErrorEntry;
const
MeaningsArray: ErrorMeaningsArray =
{Ошибки DOS}

((Code:   1;  Meaning: 'Неверный номер DOS-функции' {Invalid DOS function number}),
(Code:   2;  Meaning: 'Файл не найден' {File not found}),
(Code:   3;  Meaning: 'Путь не найден' {Path not found}),
(Code:   4;  Meaning: 'Слишком много открытых файлов' {Too many open files}),
(Code:   5;  Meaning: 'В доступе к файлу отказано' {File access denied}),
(Code:   6;  Meaning: 'Неверный дескриптор файла' {Invalid file handle}),
(Code:   7;  Meaning: 'Разрушены управляющие блоки памяти' {Memory control blocks destroyed}),
(Code:   8;  Meaning: 'Недостаточно памяти DOS' {Insufficient DOS memory}),
(Code:   9;  Meaning: 'Неверный адрес блока памяти' {Invalid memory block address}),
(Code:  10;  Meaning: 'Неверное окружение DOS' {Invalid DOS environment}),
(Code:  11;  Meaning: 'Неверный формат (DOS)' {Invalid format (DOS)}),
(Code:  12;  Meaning: 'Неверный код доступа к файлу' {Invalid file access code}),
(Code:  13;  Meaning: 'Неверные данные (DOS)' {Invalid data (DOS)}),
(Code:  15;  Meaning: 'Неверный номер устройства' {Invalid drive number}),
(Code:  16;  Meaning: 'Невозможно удалить текущую директорию' {Cannot remove current directory}),
(Code:  17;  Meaning: 'Невозможно переименовать драйвер' {Cannot rename across drives}),
(Code:  18;  Meaning: 'Файлов больше нет' {No more files}),
(Code:  19;  Meaning: 'Диск защищен от записи' {Disk write-protected}),
(Code:  20;  Meaning: 'Неизвестное устройство (DOS)' {Unknown unit (DOS)}),
(Code:  21;  Meaning: 'Устройство не готово' {Drive not ready}),
(Code:  22;  Meaning: 'Неизвестная команда DOS' {Unknown DOS command}),
(Code:  23;  Meaning: 'CRC-ошибка' {CRC error}),
(Code:  24;  Meaning: 'Плохой запрос длины структуры' {Bad request structure length}),
(Code:  25;  Meaning: 'Ошибка поиска' {Seek error}),
(Code:  26;  Meaning: 'Неизвестный тип носителя' {Unknown media type}),
(Code:  27;  Meaning: 'Сектор диска не найден' {Disk sector not found}),
(Code:  28;  Meaning: 'Недостаточно бумаги' {Out of paper}),
(Code:  29;  Meaning: 'Ошибка записи' {Write fault}),
(Code:  30;  Meaning: 'Ошибка чтения' {Read fault}),
(Code:  31;  Meaning: 'Общий сбой' {General failure}),
(Code:  32;  Meaning: 'Нарушение общего доступа к файлу' {File sharing violation}),
(Code:  33;  Meaning: 'Нарушение блокировки файла' {File lock violation}),
(Code:  34;  Meaning: 'Неверная смена диска' {Invalid disk change}),
(Code:  35;  Meaning: 'Управляющий блок файла недоступен' {File control block unavailable}),
(Code:  36;  Meaning: 'Переполнение разделяемого буфера' {Sharing buffer overflow}),
(Code:  37;  Meaning: 'Несовпадение кодовой страницы' {Code page mismatch}),
(Code:  38;  Meaning: 'Ошибка обработки EOF' {Error handling EOF}),
(Code:  39;  Meaning: 'Дескриптор диска полон' {Handle disk full}),
(Code:  50;  Meaning: 'Сетевой запрос не поддерживается' {Network request not supported}),
(Code:  51;  Meaning: 'Удаленный компьютер недоступен' {Remote computer not listening}),
(Code:  52;  Meaning: 'Дубликат имени в сети' {Duplicate name on network}),
(Code:  53;  Meaning: 'Сетевое имя не найдено' {Network name not found}),
(Code:  54;  Meaning: 'Сеть занята' {Network busy}),
(Code:  55;  Meaning: 'Сетевое устройство больше не существует' {Network device no longer exists}),
(Code:  56;  Meaning: 'Превышен лимит команды NetBIOS' {NetBIOS command limit exceeded}),
(Code:  57;  Meaning: 'Ошибка сетевого адаптера' {Network adaptor error}),
(Code:  58;  Meaning: 'Неверный сетевой ответ' {Incorrect network response}),
(Code:  59;  Meaning: 'Неожиданная ошибка сети' {Unexpected network error}),
(Code:  60;  Meaning: 'Несовместимый удаленный адаптер' {Incompatible remote adaptor}),
(Code:  61;  Meaning: 'Очередь на печать переполнена' {Print queue full}),
(Code:  62;  Meaning: 'Нет достаточного места для файла печати' {Not enough space for print file}),
(Code:  63;  Meaning: 'Файл печати удален' {Print file deleted}),
(Code:  64;  Meaning: 'Сетевое имя удалено' {Network name deleted}),
(Code:  65;  Meaning: 'Доступ запрещен' {Access denied}),
(Code:  66;  Meaning: 'Неверный тип сетевого устройства' {Network device type incorrect}),
(Code:  67;  Meaning: 'Сетевое имя не найдено' {Network name not found}),
(Code:  68;  Meaning: 'Превышен предел сетевого имени' {Network name limit exceeded}),
(Code:  69;  Meaning: 'Превышен предел сеансов NetBIOS' {NetBIOS session limit exceeded}),
(Code:  70;  Meaning: 'Временная пауза' {Temporarily paused}),
(Code:  71;  Meaning: 'Сетевой запрос не принят' {Network request not accepted}),
(Code:  72;  Meaning: 'Пауза переадресации печати/диска' {Print/disk redirection paused}),
(Code:  80;  Meaning: 'Файл уже существует' {File already exists}),
(Code:  82;  Meaning: 'Невозможно создать каталог' {Cannot make directory entry}),
(Code:  83;  Meaning: 'Ошибка прерывания 24' {Fail on interrupt 24}),
(Code:  84;  Meaning: 'Слишком много переадресаций' {Too many redirections}),
(Code:  85;  Meaning: 'Дубликат переадресации' {Duplicate redirection}),
(Code:  86;  Meaning: 'Неверный пароль' {Invalid password}),
(Code:  87;  Meaning: 'Неверный параметр' {Invalid parameter}),
(Code:  88;  Meaning: 'Ошибка данных сети' {Network data fault}),
{Ошибки ввода/вывода (I/O errors)}

(Code: 100;  Meaning: 'Ошибка чтения диска' {Disk read error}),
(Code: 101;  Meaning: 'Ошибка записи диска' {Disk write error}),
(Code: 102;  Meaning: 'Файл не назначен' {File not assigned}),
(Code: 103;  Meaning: 'Файл не открыт' {File not open}),
(Code: 104;  Meaning: 'Не открыт файл для приема' {File not open for input}),
(Code: 105;  Meaning: 'Не открыт файл для выдачи' {File not open for output}),
(Code: 106;  Meaning: 'Неверный числовой формат' {Invalid numeric format}),
{Критические ошибки (Только для реального или защищенного режима)}

(Code: 150;  Meaning: 'Диск защищен от записи' {Disk is write protected}),
(Code: 151;  Meaning: 'Неизвестное устройство' {Unknown unit}),
(Code: 152;  Meaning: 'Устройство не готово' {Drive not ready}),
(Code: 153;  Meaning: 'Неизвестная команда DOS' {Unknown DOS command}),
(Code: 154;  Meaning: 'Ошибка CRC в данных' {CRC error in data}),
(Code: 155;  Meaning: 'Плохой запрос длины структуры устройства' {Bad drive request struct length}),
(Code: 156;  Meaning: 'Ошибка позиционирования диска' {Disk seek error}),
(Code: 157;  Meaning: 'Неизвестный тип носителя' {Unknown media type}),
(Code: 158;  Meaning: 'Сектор не найден' {Sector not found}),
(Code: 159;  Meaning: 'Недостаточно бумаги в принтере' {Printer out of paper}),
(Code: 160;  Meaning: 'Ошибка записи устройства' {Device write fault}),
(Code: 161;  Meaning: 'Ошибка чтения устройства' {Device read fault}),
(Code: 162;  Meaning: 'Аппаратный сбой' {Hardware failure}),
{Фатальные ошибки}

(Code: 200;  Meaning: 'Деление на ноль' {Division by zero}),
(Code: 201;  Meaning: 'Ошибка проверки диапазона' {Range check error}),
(Code: 202;  Meaning: 'Ошибка переполнения стека' {Stack overflow error}),
(Code: 203;  Meaning: 'Ошибка переполнения кучи' {Heap overflow error}),
(Code: 204;  Meaning: 'Неверная операция с указателем' {Invalid pointer operation}),
(Code: 205;  Meaning: 'Переполнение числа с плавающей точкой' {Floating point overflow}),
(Code: 206;  Meaning: 'Потеря значимости числа с плавающей точкой' {Floating point underflow}),
(Code: 207;  Meaning: 'Неверная операция с числом с плавающей точкой' {Invalid floating pt. operation}),
(Code: 208;  Meaning: 'Не установлен оверлей-менеджер' {Overlay manager not installed}),
(Code: 209;  Meaning: 'Ошибка чтения оверлей-файла' {Overlay file read error}),
(Code: 210;  Meaning: 'Объект не инициализирован' {Object not initialised}),
(Code: 211;  Meaning: 'Вызов абстрактного метода' {Call to abstract method}),
(Code: 212;  Meaning: 'Ошибка регистрации потока' {Stream registration error}),
(Code: 213;  Meaning: 'Индекс TCollection вышел за границы диапазона' {TCollection index out of range}),
(Code: 214;  Meaning: 'Ошибка переполнения TCollection' {TCollection overflow error}),
(Code: 215;  Meaning: 'Ошибка арифметического переполнения' {Arithmetic overflow error}),
(Code: 216;  Meaning: 'Общая ошибка защиты' {General Protection Fault}),
(Code: 217;  Meaning: 'Необработанное исключение' {Unhandled exception}),
(Code: 219;  Meaning: 'Неверное приведение типа' {Invalid typecast}));
var
Low, High, Mid, Diff: Integer;
begin
Low := 1;
High := NumOfEntries;
while Low <= High do
begin
Mid := (Low + High) div 2;
Diff := MeaningsArray[Mid].Code - ResultCode;
if Diff < 0 then Low  := Mid + 1 else
if Diff > 0 then High := Mid - 1 else
begin {нашли это}
ErrMeaning := MeaningsArray[Mid].Meaning;
Exit; {ErrMeaning}
end;
end; {while}
ErrMeaning := 'Ошибка ' + IntToStr(ResultCode) +
' (неизвестное значение)';
end; {ErrMeaning}

ещё...


  var
    i: Integer;
  begin
    for i := 1 to NumOfEntries do
      if MeaningsArray[i].Code < ResultCode then
        Continue {до следующей итерации цикла FOR loop}
      else
      begin
        if MeaningsArray[i].Code = ResultCode then
        begin
          ErrMeaning := MeaningsArray[i].Meaning;
          Exit; {ErrMeaning}
        end
        else {Code in array > ResultCode}
          Break; {выход из цикла FOR}
      end;
    ErrMeaning := 'Ошибка ' + IntToStr(ResultCode) +
                  ' (неизвестное значение)';
  end; {ErrMeaning}






Copyright © 2004-2016 "Delphi Sources". Delphi World FAQ




Группа ВКонтакте   Ссылка на Twitter   Группа на Facebook