Директива $IOChecks компилятора Delphi когда включено, ошибка операции ввода-вывода вызывает исключение.
- {$IOChecks Off}
- {$IOChecks On}
Директива компилятора $IOChecks определяет, будет ли выдано исключение, когда при операции Ввода/Вывода происходит ошибка.
Когда происходит ошибка, значение по умолчанию {$IOChecks On} генерирует исключение EInOutError.
При {$IOChecks Off} исключение не генерируется. Вместо этого, ответственность за проверку операций ввода/вывода возлагается на IOResult подпрограмм.
Примечания.
Когда вызывается IOResult подпрограмма сбрасывает значение ошибки ввода/вывода в 0.
$IOChecks эквивалентен $I.
Эта директива может использоваться в пределах вашего кода множество раз.
Значение по умолчанию – $IOChecks On.
Директива компилятора $IOChecks: Попытка создать директорию дважды
var
error : Integer;
begin
// Попытка создать новый подкаталог в текущем каталоге
// Выключение проверки ошибок ввода/вывода
{$IOChecks off}
MkDir('TempDirectory');
// Каталог создался?
error := IOResult;
if error = 0
then ShowMessage('Каталог создался')
else ShowMessageFmt('Создание каталога потерпело неудачу с ошибкой %d',[error]);
// Попытка создать новый подкаталог в текущем каталоге - произойдёт ошибка!
MkDir('TempDirectory');
error := IOResult;
if error = 0
then ShowMessage('Каталог создался снова')
else ShowMessageFmt('Повтор создания провалился с ошибкой %d',[error]);
// Удаление каталога для очистки
RmDir('TempDirectory');
// Включение проверки ошибок ввода/вывода
{$IOChecks on}
end;
Результат
Каталог создался
Повтор создания провалился с ошибкой 183
Похожие функции, процедуры и команды
$I — позволяет встроить код указанного файла в модуль.
IOResult — содержит возвращаемый код последней операции ввода/вывода.
