...
AnsiString s;
try
{
s.ToDouble();
}
catch (EConvertError&)
{
ShowMessage("Строка не является числом с плавающей запятой");
}
...
Блок Try ... Catch
Код:
Но вместо отлавливания исключения выдается ошибка EConvertError.
Что-то я не пойму, в чем прикол?
Запусти программу независимо от Билдера и все будет как нужно.
А вообще я для этого на работе заюзал ф-цию из STL
вместо исключения, если строка не является числом возвращается нуль.
Только нужно не забыть перед преобразованием проверить строку просто на нуль.
Название ф-цию сейчас уже не помню.
Правильно, CBuilder вначале отлавливает свои exceptions, а уж за тем программные. Это можно увидеть очень просто: когда CBuilder выкинет исключение жми ОК, затем F9, потом увидешь своё исключение.
Цитата:
Originally posted by Dunkel
Имеется следующий код:
Но вместо отлавливания исключения выдается ошибка EConvertError.
Что-то я не пойму, в чем прикол?
Имеется следующий код:
Код:
...
AnsiString s;
try
{
s.ToDouble();
}
catch (EConvertError&)
{
ShowMessage("Строка не является числом с плавающей запятой");
}
...
AnsiString s;
try
{
s.ToDouble();
}
catch (EConvertError&)
{
ShowMessage("Строка не является числом с плавающей запятой");
}
...
Но вместо отлавливания исключения выдается ошибка EConvertError.
Что-то я не пойму, в чем прикол?
atof,atoi - ф-ции STL
Цитата:
Originally posted by 3D Bob
В режиме отладки оно так будет происходить.
Запусти программу независимо от Билдера и все будет как нужно.
А вообще я для этого на работе заюзал ф-цию из STL
вместо исключения, если строка не является числом возвращается нуль.
Только нужно не забыть перед преобразованием проверить строку просто на нуль.
Название ф-цию сейчас уже не помню.
В режиме отладки оно так будет происходить.
Запусти программу независимо от Билдера и все будет как нужно.
А вообще я для этого на работе заюзал ф-цию из STL
вместо исключения, если строка не является числом возвращается нуль.
Только нужно не забыть перед преобразованием проверить строку просто на нуль.
Название ф-цию сейчас уже не помню.
Этот метод хорош, только когда 0 - недопустимое значение.
Цитата:
Originally posted by honeybeer
Этот метод хорош, только когда 0 - недопустимое значение.
Этот метод хорош, только когда 0 - недопустимое значение.
Я же добавил, но перед этим проверить не является ли строка с нулевой цифрой.