Устанавливаем jgag программой контроль
Узнать, возникает ли при выполнении различных стандартных функций какая-то исключительная ситуация, можно в справочной системе (Help). Найдите краткое описание StrToFloatQ — там говорится, что если параметр этой функции некорректен, то возникает ситуация EConvertError.
Когда никакой реакций на те или иные исключительные ситуации в программе явно не определено, то при их возникновении вызывается стандартный обработчик исключений. Так было, в частности, когда калькулятор выдавал окно с сообщением о попытке деления на ноль.
Не для всех стандартных функций определены обработчики исключительных ситуаций. Некоторые функции, если им в качестве параметров переданы неверные величины, просто возвращают предопределенное значение, сигнализирующее об ошибке. Например, если функция FloatToStrFQ по каким-то причинам не сможет преобразовать число в текст, то она может вернуть в качестве результирующей строки "NAN".
.« « Теперь можно установить контроль со стороны программиста над процессом преобразования строки. Для этого надо выделить операторы в логический блок с помощью фигурных скобок, а перед этим блоком указать ключевое слово try, которое в данном случае можно приблизительно перевести как попробовать выполнить:
try
{
Roubles->Text = FloatToStrF(
floor(StrToFloat(Dollars->Text) * StrToFloat(Rate->Text) + 0.5),ffFixed, 10, 2 );
}
Сразу за проверяемым блоком надо указать ключевое слово catch (поймать), вслед за которым в круглых скобках записывается такая конструкция:
catch (const название-ситуации &) В рассматриваемом случае она будет выглядеть так:
catch (const EConvertError &)
Таким способом указывается, что в данном месте будет располагаться оригинальный (написанный программистом) обработчик ситуации EConvertError. Этот обработчик следует далее — в отдельном логическом блоке:
99