На главную страницу
Форум txt.version   




Статья :: Контроль ошибок ввода/вывода

 

Контроль ошибок ввода/вывода

При работе с файлами разработчик обязательно должен предусмотреть обработку возможных ошибок. Практика показывает, что именно операции ввода/вывода вызывают большую часть ошибок, возникающих в приложении из-за воздействия окружающей программной среды.

Контроль за ошибками ввода/вывода зависит от применяемых функций. При использовании доступа через Win32 API все функции возвращают код ошибки Windows, который и нужно проанализировать.

При возникновении ошибок ввода/вывода в функциях, использующих файловые переменные, генерируется исключительная ситуация класса EinOutError. Но так происходит только в том случае, если включен контроль ошибок ввода/вывода. Для этого используются соответствующие директивы компилятора:

  • {$I+}— контроль включен (установлен по умолчанию); 
  • {$I-} — контроль отключен.

Класс EinOutError отличается тем, что у него есть поле ErrorCode. При возникновении этой исключительной ситуации вы можете получить его значение и принять решение. Основные коды имеют такие значения:

  •  2 — файл не найден;
  •  3 — неверное имя файла;
  •  4 — слишком много открытых файлов;
  •  5 — доступ запрещен;
  •  100 — достигнут конец файла;
  •  101 — диск переполнен;
  •  106 — ошибка ввода.

При отключенном контроле в случае возникновения ошибки выполнение программы продолжается без остановки. Однако в этом случае устранение возможных последствий ошибки возлагается на разработчика. Для этого применяется функция

function lOResult: Integer;

которая возвращает значение 0 при отсутствии ошибок.

 

Контроль ошибок ввода/вывода

страницы в данном разделе 
 ГЛАВА 9  ГЛАВА 9 Файлы и устройства ввода/вывода
 Использование файловых переменных. Типы файлов  Операции ввода/вывода
 Ввод/вывод с использованием функций Windows API  Отложенный (асинхронный) ввод/вывод
 Контроль ошибок ввода/вывода  Атрибуты файла. Поиск файла
 Потоки  Базовые классы TStream и THandleStream
 Класс TFileStream  Класс TMemoryStream
 Класс TStringStream  Оповещение об изменениях в файловой системе
 Использование отображаемых файлов  Резюме


Разделы
Околокомпьютерная литература (375)
Программирование (102)
Программы (75)
ОС и Сети (49)
Интернет (29)
Аппаратное обеспечение (16)
Базы данных (6)

Содержание сайта (выборка)
Apache
Протоколы TCP/IP (принципы, протоколы и архитектура)

PHP, PELR, JSP
PHP
JavaServer Pages (JSP)

Базы данных
Основы mysql
СУБД INFORMIX
СУБД POSTGRES
Основы проектирования реляционных баз данных

HTML, javascript
Спецификация HTML 4.01
Каскадные Таблицы Стилей, Уровень 2
Клиентский JavaScript. Справочник.
JavaScript руководство пользователя
Серверный JavaScript 1.4. Руководство по Использованию.

Паскаль, C, C++, C#
GCC (примеры)
FAQ Валентинa Озеровa DELPHI
C





 
©  programming-lang.com  справочник программиста