Delphi справочник - Форум программистов - Навигация  
 A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z      По первой букве  
System     SysUtils     StrUtils     DateUtils     FileCtrl     ConvUtils     StdConvs     Math     Classes     Dialogs     Types     Variants    ПО Unit   Compiler directives     Directives     Keywords     Types     Variables     Constants     Functions     Procedures    По категории  

форум программистов

Основы Delphi
$OverFlowChecks
Деректива компилятора
Определяет, проверяет ли Delphi целочисленные и перечислимые границы unit
  
1 {$OverFlowChecks Off}

2 {$OverFlowChecks On}
Описание
Директива компилятора $OverFlowChecks определяет, должен ли Delphi добавлять код, чтобы проверить переполнение значения целочисленных и перечислимых операций.

По умолчанию поставлено в Off, подразумевая, что плохая целочисленная или перечислимая операция пройдет незамеченной, показывая себя в трудной для отладки части кода.

Рекомендуют включить $OverFlowChecks, чтобы обнаружить переполнение прежде, чем они вызовут проблемы. Это приведет к подъему исключений, позволяя корректировать код, находя точки отказа.
Примечания
$OverFlowChecks эквивалентна $Q.

Она может и должена только быть установлена только один раз в вашем коде.

$OverFlowChecks Off является значением по умолчанию.
Похожие команды
$Q  Определяет, проверяет ли Delphi целочисленные и перечислимые границы

 
Пример кода : Перехват переполненых значений
var
  myNumber : Byte;

begin
  // Проверка переполнения включена
  {$OverFlowChecks On}
  // Байт может содержать числа до 255
  myNumber := 255;
  ShowMessage('myNumber = '+IntToStr(myNumber));

  // Превышение 255 выдаст исключение
  Inc(myNumber);
  ShowMessage('myNumber = '+IntToStr(myNumber));
end;
myNumber = 255

Delphi выдаст исключение EIntOverflow
 
Пример кода : Игнорирование переполненых значений
var
  myNumber : Byte;

begin
  // Выключение проверок переполнения
  {$OverFlowChecks Off}
  // Байт может содержать числа до 255
  myNumber := 255;
  ShowMessage('myNumber = '+IntToStr(myNumber));

  // Превышение 255 сбросит значение до 0
  Inc(myNumber);
  ShowMessage('myNumber = '+IntToStr(myNumber));
end;
myNumber = 255
myNumber = 0
 


Оплата за обучение в Kata Academy только после твоего трудоустройства в IT, начни карьеру Middle Java-разработчика



Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки? Slurm подготовили для вас особенный продукт!





форум программистов


© Форум Delphi  |  Форум Pascal   |  Блог программистов   |  Исходники Delphi   |  Автор сайта  |  Ссылки   |  Английская версия