Assert, процедура
Процедура Assert призначена для документування і перевірки істинності припущень, зроблених при написанні коду. Assert фактично не є процедурою. Компілятор спеціальним чином обробляє виклики Assert і генерує ім'я файлу і номер рядка, де була порушена істинність твердження для полегшення пошуку призвела до цього помилки.
Якщо умова Test одно False, Delphi викликає процедуру за вказівником, який визначається змінної AssertErrorProc. Модуль SysUtils встановлює значення цієї змінної рівним процедурі, що викликає виняткову ситуацію EAssertionFailed. Якщо значення AssertErrorProc одно nil, Delphi викликає помилку 21 (EAssertError).
Можна вказати необов'язкове повідомлення, яке Delphi передасть процедурі AssertErrorProc. Якщо повідомлення не вказано, Delphi використовує рядок за замовчуванням, "Assertion failed".
Поради та прийоми
- Правильний спосіб застосування процедури Assert передбачає перевірку умов, які повинні виконуватися, щоб код працював коректно. Всі програмісти роблять припущення - про внутрішній стан об'єкта, значення і коректності аргументів підпрограми або значенні, повернутому функцією. Найкраще ставитися до допущенням як до перевірок на наявність помилок програміста, а не користувача.
- Можна відключити допущення за допомогою директиви компілятора $ Assertions або $ С, але причини для цього з'являються рідко. Помилка "assertion failed" може збити користувача з пантелику, але в значно більшому ступені його засмутить втрата даних.