|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
23.04.2018, 23:38 | #1 |
Пользователь
Регистрация: 22.10.2017
Сообщений: 50
|
Как вместо сообщения Is not valid integer value вывести свой текст
Программа меняет все значения, со знаком (=), в порядке убывания. А когда ввожу без знака (=) то возникает ошибка.
И вот вопрос: Как, место сообщения Is not valid integer value - Вывести свой текст. К примеру, сообщение: "Внимание, вы ввели неправильные - значения". Прикрепил картинки!... |
23.04.2018, 23:57 | #2 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Смотрите try except.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
24.04.2018, 00:07 | #3 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
или заменить в коде функцию StrToInt() на функцию TryStrToInt()
(только заменить не механически - это другая функция, с двумя параметрами, которая возвращает логическое выражение - удалось ли корректно преобразовать строку в число (True) или нет (вернётся False). |
24.04.2018, 00:27 | #4 | |
Пользователь
Регистрация: 22.10.2017
Сообщений: 50
|
Цитата:
Сделал так: Код:
|
|
25.04.2018, 01:50 | #5 |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,867
|
|
25.04.2018, 09:51 | #6 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,545
|
Дык оно ж на понятном всем рабоче-крестьянском
|
25.04.2018, 10:08 | #7 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
этого мало. Абсолютно непонятно что означает "неправильное значение" (дробное, отрицательное, больше миллиона).. и, главное, непонятно где именно это самое "значение". Особенно актуально с учётом того, что такая ошибка возникает при попытке конвертировать в целое ПУСТУЮ строку.
Хорошее сообщение об ошибке должно информировать пользователя о том, какая именно ошибка произошла, что именно привело к этой ошибке (где она конкретно возникла или какой объект причина ошибки) и что нужно сделать пользователю, чтобы исправить ситуацию. |
25.04.2018, 10:30 | #8 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,545
|
Но тогда уж try except не помощники. Перед преобразованием надо "вручную" парсить желаемую преобразовать строку.
|
25.04.2018, 10:49 | #9 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
Вы вообще эту тему читали? во-первых, можно использовать TryStrToInt() во-вторых, можно использовать Try.. except - только нужно им обернуть не полпрограммы, а конкретно тот участок кода, где происходит конвертация. Если Вы намекаете на то, что try except не может определить, какая ошибка возникла, то Вы ошибаетесь - см. конструкцию on E: EConvertError do ну и последнее, если всё это по каким-то религиозным причинам не устраивает, то есть добрая старая (олдскульная ) процедура Val(). p.s. речь шла не о том, что автор использовал try except, а в том, что он 1) использовал его слишком глобально 2) сообщение ничем не лучше системного сообщения (ну, кроме русского языка). впрочем, автора это решение, похоже, вполне устраивает. |
|
25.04.2018, 11:32 | #10 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,545
|
Увы... Mea maxima culpa ...
|
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
is not valid integer value | roma88gruzd88 | Помощь студентам | 4 | 16.10.2013 13:41 |
как заменить фразу is not a valid integer value | Richik123 | Помощь студентам | 6 | 22.11.2012 22:23 |
Is not a valid integer value | [Jank] | Общие вопросы Delphi | 11 | 18.09.2012 16:36 |
is not a valid integer value | AFA | Помощь студентам | 41 | 15.03.2012 20:29 |
is not a valid integer value | FanRa3 | Общие вопросы Delphi | 10 | 26.07.2011 19:54 |