Форум веб-мастеров  /  Статьи веб-мастера  /  WHOIS-сервис  /  Услуги веб-мастера  /  RSS 
Разделы сайта




Полезные ссылки

wm-help.net -> Электронная библиотека -> Delphi -> Учебник по Delphi -> Приложение 1

Приложение 1

Приложение 1

Сообщения об ошибках и исключениях

Список исключительных ситуаций мы уже обсуждали во второй главе книги. В данном приложении мы рассмотрим системные ошибки Win32 API. Код такой ошибки можно получить при помощи вызова функции GetLastError. В приведенной ниже таблице представлен список констант, получаемых в результате вызова функции GetLastError и их значений, а также краткое описание ошибок.
Таблица П. 1. Коды ошибок Win32 API

Константа

Значение

Описание

ERROR_SUCCESS

0

Операция выполнена успешно

ERROR_INVALID_FUNCTION

1

Неверная функция

ERROR_FILE_NOT_FOUND

2

Не найден требуемый файл

ERROR_PATH_NOT_FOUND

3

Не найден указанный путь

ERROR_TOO_MANY_OPEN_FILES

4

Не удается открыть файл

ERROR_ACCESS_DENIED

5

Нет доступа

ERROR_INVALID_HANDLE

6

Неверный дескриптор

ERROR_ARENA_TRASHED

7

Повреждены управляющие блоки памяти

ERROR_NOT_ENOUGH_MEMORY

8

Недостаточно памяти для обработки команды

ERROR_INVALID_BLOCK

9

Неверный адрес управляющего блока памяти

ERROR_BAD_ENVIRONMENT

10

Ошибка в среде

ERROR_BAD_FORMAT

11

Неверный формат файла

ERROR_INVALID_ACCESS

12

Неверный код доступа

ERROR_INVALID_DATA

13

Ошибка в данных

ERROR_OUTOFMEMORY

14

Недостаточно памяти для завершения операции

ERROR_INVALID_DRIVE

15

Не удается найти указанный диск

ERROR_CURRENT_DIRECTORY

16

Не удается удалить папку

ERROR_NOT_SAME_DEVICE

17

Не удается переместить файл на другой диск

ERROR_NO_MORE_FILES

18

Файлов больше нет

ERROR_WRITE_PROTECT

19

Диск защищен от записи

ERROR_BAD_UNIT

20

Не удается найти указанное устройство

ERROR_NOT_READY

21

Устройство не готово

ERROR_BAD_COMMAND

22

Устройство не опознает команду

ERROR_CRC

23

Ошибка в данных (CRC)

ERROR_BAD_LENGTH

24

Большая длина выданной программой команды

ERROR_SEEK

25

Не удается найти заданную дорожку или область на диске

ERROR_NOT_DOS_DISK

26

Нет доступа к диску

ERROR_SECTOR_NOT_FOUND

27

Не удается найти заданный сектор на диске

ERROR_OUT_OF_PAPER

28

Нет бумаги в принтере

ERROR_WRITE_FAULT

29

Не удается произвести запись на устройство

ERROR_READ_FAULT

30

Не удается произвести чтение с устройства

ERROR_GEN_FAILURE

31

Присоединенное к системе устройство не работает

ERROR_SHARING_VIOLATION

32

Процесс не может получить доступ к файлу, т. к. этот файл занят другим процессом

ERROR_LOCK_VIOLATION

33

Процесс не может получить доступ к файлу, т. к. часть этого файла заблокирована другим процессом

ERROR_WRONG_DISK

34

В устройство вставлен неверный диск

ERROR_SHARING_BUFFER_EXCEEDED

36

Слишком много файлов открыто для совместного пользования

ERROR_HANDLE_EOF

38

Достигнут конец файла

ERROR_HANDLE_DISK_FULL

39

Диск полностью заполнен

ERROR_NOT_SUPPORTED

50

Сетевой запрос не поддерживается

ERROR_REM_NOT_LIST

51

Удаленный компьютер не доступен

ERROR_DUP_NAME

52

В сети присутствуют совпадающие имена

ERROR_BAD_NETPATH

53

Не найден сетевой путь

ERROR_NETWORK_BUSY

54

Сеть занята

ERROR_DEV_NOT_EXIST

55

Сетевой ресурс или устройство более недоступно

ERROR_TOO_MANY_CMDS

56

Достигнут предел числа команд NetBIOS

ERROR_ADAP_HDW_ERR

57

Аппаратная ошибка сетевой платы

ERROR_BAD_NET_RESP

58

Указанный сервер не может выполнить требуемую операцию

ERROR_UNEXP_NET_ERR

59

Неожиданная ошибка в сети

ERROR_BAD_REM_ADAP

60

Несовместимый удаленный адаптер

ERROR_PRINTQ_FULL

61

Очередь печати переполнена

ERROR_NO_SPOOL_SPACE

62

На сервере нет места для записи файла, выводимого на печать

ERROR_PRINT_CANCELLED

63

Был отменен вывод на печать файла, находящегося в очереди

ERROR_NETNAME_DELETED

64

Указанное сетевое имя больше недоступно

ERROR_NETWORK_ACCES_DENIED

65

Отсутствует доступ к сети

ERROR_BAD_DEV_TYPE

66

Неправильно указан тип сетевого ресурса

ERROR_BAD_NET_NAME

67

Не найдено сетевое имя

ERROR_TOO_MANY_NAMES

68

Превышено число имен для сетевой платы компьютера

ERROR_TOO_MANY_SESS

69

Превышено допустимое число сеансов NetBIOS

ERROR_SHARING_PAUSED

.70

Сервер сети был остановлен или перезапускается

ERROR_REQ_NOT_ACCEP

71

Невозможно подключиться к удаленному компьютеру, т. к. достигнуто предельное число подключений

ERROR_REDIR_PAUSED

72

Работа указанного устройства была приостановлена

ERROR_FILE_EXISTS

80

Файл существует

ERROR_CANNOT_MAKE

82

Не удается создать файл или папку

ERROR_FAIL_I24

83

Ошибка при обращении к прерыванию INT 24

ERROR_OUT_OF_STRUCTRURES

84

Недостаточно памяти для обработки запроса

ERROR_ALREADY_ASSIGNED

85

Имя устройства уже используется

ERROR_INVALID_PASSWORD

86

Неправильно указан сетевой пароль

ERROR_INVALID_PARAMETER

87

Неверное задание параметра .

ERROR_NET_WRITE_FAULT

88

Ошибка записи в сеть

ERROR_NO_PROC_SLOTS

89

Невозможно запустить другой процесс

ERROR_TOO_MANY_SEMAPHORES

100

Не удается создать еще один системный семафор

ERROR_EXCL_SEM_ALREADY_OWNED

101

Семафор эксклюзивного доступа занят другим процессом

ERROR_SEM_I S_SET

102

Семафор установлен и не может быть закрыт

ERROR TOO_MANY_SEM_REQUESTS

103

Семафор не может быть установлен повторно

ERROR_INVALID_AT_INTERRUPT_TIME

104

Нельзя послать запрос к семафору эксклюзивного доступа во время выполнения прерываний

ERROR_SEM_OWNER_DIED

105

Данный семафор больше не принадлежит использовавшему его процессу

ERROR_SEM_USER_LIMIT

106

Достигнут предел числа пользователей семафора

ERROR_DI SK_CHANGE

107

В устройстве установлен не тот диск

ERROR_DRIVE_LOCKED

108

Диск занят или заблокирован

ERROR_BROKEN_PI PE

109

Канал закрыт

ERROR_OPEN_FAILED

110

Не удается открыть указанное устройство или файл

ERROR_BUFFER_OVERFLOW

111

Переполнение буфера

ERROR_DISK_FULL

112

Отсутствует дисковое пространство

ERROR_NO_MORE_SEARCH_HANDLES

113

Больше нет внутренних идентификаторов файлов

ERROR_INVALID_TARGET_HANDLE

114

Неправильный внутренний идентификатор файла

ERROR_INVALID_CATEGORY

117

Неправильный вызов функции

ERROR_INVALI D_VERI FY_SWITCH

118

Неправильное значение параметра проверки записи данных на диск

ERROR_BAD_DRIVER_LEVEL

119

Невозможна обработка полученной команды

ERROR_CALL_NOT_IMPLEMENTED

120

Вызов функции не поддерживается в Win 16

ERROR_SEM_TIMEOUT

121

Истекло время ожидания семафора

ERROR_INSUFFICIENT_BUFFER

122

Недостаточный объем области данных

ERROR_INVALID_NAME

123

Неправильное имя файла, папки или метки тома

ERROR_INVALID LEVEL

124

Неверный уровень системного вызова

ERROR_NO_VOLUME_LABEL

125

Диск не имеет метки тома

ERROR_MOD_NOT_FOUND

126

Не найден указанный модуль

ERROR_PROC_NOT_FOUND

127

Не найдена указанная процедура

ERROR_WAIT_NO_CHILDREN

128

Нет дочерних процессов, окончания работы которых требуется ожидать

ERROR_CHILD_NOT_COMPLETE

129

Выполнение дочернего процесса не завершено

ERROR_DIRECT_ACCESS_HANDLE

130

Попытка использования дескриптора файла для открытия диска и выполнения операции, отличающейся от ввода/вывода

ERROR_NEGATIVE_SEEK

131

Попытка поместить указатель на файл перед файлом

ERROR_SEEK_ON_DEVICE

132

Указатель на файл не может быть установлен на заданный файл

ERROR_I S_ JOIN_TARGET

133

Команда JOIN не может быть использована для дисков, в которых содержатся объединенные диски

ERROR_IS_ JOINED

134

Попытка использовать команду JOIN или SUBST для диска, который уже включен в набор объединенных дисков

ERROR_IS_SUBSTED

135

Попытка использовать команду JOIN или SUBST для диска, который уже был отображен

ERROR_NOT_JOINED

136

Диск не был объединен

ERROR_NOT_SUBSTED

137

Невозможно снять признак отображения с диска, который не был отображен

ERROR_JOIN TO_JOIN

138

Невозможно объединить диск с папкой на объединенном диске

ERROR_SUBST_TO_SUBST

139

Невозможно отобразить диск на папку, находящуюся на отображенном диске

ERROR_JOIN_TO_SUBST

140

Невозможно объединить диск с папкой, находящейся на отображенном диске

ERROR_SUBST_TO_JOIN

141

Невозможно отобразить диск на папку, находящуюся на объединенном диске

ERROR_BUSY_DRIVE

142

Диск занят, невозможно выполнить команду JOIN или SUBST

ERROR_SAME_DRIVE

143

Попытка объединения или отображения одного и того же диска

ERROR_DIR_NOT_ROOT

144

Папка не является корневой

ERROR_DIR_NOT_EMPTY

145

Папка не пуста

ERROR_IS_SUBST_PATH

146

Указанный путь используется для отображенного диска

ERROR_IS_JOIN_PATH

147

Указанный путь используется для объединенного диска

EKROR_PATH_BUSY

148

Невозможно использовать указанный путь

ERROR_I S_SUBST_TARGET

149

Невозможно объединить или отобразить диск, т. к. его папка уже используется для отображения

ERROR_SYSTEM_TRACE

150

Трассировка запрещена

ERROR_INVALID_EVENT_COUNT

151

Неправильно задано количество семафоров для процедуры DosMuxSemWait

ERROR_TOO_MANY_MUXWAITERS

152

Задано слишком большое число семафоров для процедуры DosMuxSemWait

ERROR_INVALID_LIST_FORMAT

153

Некорректный вызов процедуры DosMuxSemWait

ERROR_LABEL_TOO_LONG

154

Слишком длинная метка тома для диска

ERROR_TOO_MANY TCBS

155

Превышен предел потоков команд

ERROR_SIGNAL_REFUSED

156

Сигнал был отклонен принимающим процессом

ERROR_DISCARDED

157

Невозможно заблокировать освобожденный сегмент

ERROR_NOT_LOCKED

158

Сегмент не заблокирован

ERROR_BAD_THREADID ADDR

159

Неправильно задан адрес идентификатора потока команд

ERROR_BAD_ARGUMENTS

160

Передан неправильный аргумент для процедуры

DosExecPrgm

ERROR_BAD_PATHNAME

161

Неправильно задан путь

ERROR_SIGNAL_PENDING

162

Сигнал обрабатывается

ERROR_MAX_THRDS_REACHED

164

Невозможно создать дополнительные потоки команд

ERROR_LOCK_FAILED

167

Невозможно снять блокировку с области файла

ERROR_BUSY

170

Запрашиваемый ресурс занят

ERROR_CANCEL_VIOLATION

173

Запрос на блокировку соответствует определенной области

ERROR_ATOMIC_LOCKS_NOT_SUPPORTED

174

Файловая система не поддерживает данное изменение типа блокировки

ERROR_INVALID_SEGMENT_NUMBER

180

Неверный номер сегмента

ERROR_INVALID_ORDINAL

182

Неправильный порядок

ERROR_ALREADY_EXIST

183

Файл уже существует

ERROR_INVALID_FLAG_NUMBER

186

Неправильный номер флага

ERROR_SEM_NOT_FOUND

187

Семафор не найден

ERROR_INVALID_STARTING_CODESEG

188

Неправильно указана стартовая кодовая страница

ERROR_INVALID_STACKSEG

189

Неправильный сегмент стека

ERROR_INVALID_MODULETYPE

190

Неправильный тип модуля

ERROR_INVALID_EXE_SIGNATURE

191

Неправильное имя ЕХЕ-файла

ERROR EXE_MARKED_INVALID

192

Неправильная маркировка ЕХЕ-файла

ERROR_BAD_EXE_FORMAT

193

Неправильный формат ЕХЕ-файла

ERROR_ITERATED_DATA_EXCEEDS_64K

194

Размер блока данных не должен превышать 64 Кбайт

ERROR_INVALI D_MINALLOCS I ZE

195

Неверный минимальный размер файла

ERROR_DYNLINK_FROM_INVALID_RING

196

Неправильная динамическая ссылка

ERROR_IOPL_NOT_ENABLED

197

Невозможно запустить приложение в данной операционной системе

ERROR_INVALID_SEGDPL

198

Неправильный сегмент

ERROR_AUTODATASEG_EXCEEDS_64K

199

Сегмент кода не может превышать 64 Кбайт

ERROR_ENWAR_NOT_FOUND

203

Не удается найти указанный параметр

ERROR_NOSIGNAL_SENT

205

Ни один процесс не может обработать сигнал

ERROR_FILENAME_EXCED_RANGE

206

Превышена длина имени или расширения файла

ERROR_RING2_STACK_IN_USE

207

Стек занят