Директива $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 — містить код останньої операції введення/виводу, що повертається.
