|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
13.06.2012, 21:42 | #1 |
Пользователь
Регистрация: 03.11.2008
Сообщений: 43
|
Ошибка в коде!
Добрый вечер, у меня проявилась проблема в этой строчке кода timeModeling = Int32.Parse(tbTMod.Text);. Изначально, модель писалась на visual studio 2005, но открывая и запуская на VS2010 уже ругается на неверный формат строки. Может кто подскажет, как её изменить?
Код:
Последний раз редактировалось Walter; 13.06.2012 в 21:56. |
13.06.2012, 23:18 | #2 |
Форумчанин
Регистрация: 10.02.2009
Сообщений: 815
|
Код:
|
14.06.2012, 03:39 | #3 |
Пользователь
Регистрация: 11.05.2012
Сообщений: 85
|
... а вообще Int32.Parse(string) работает и в VS 2010. Работает же без ошибки в Вашем же фрагменте строка
Код:
Код:
|
14.06.2012, 06:04 | #4 | |
Регистрация: 13.06.2011
Сообщений: 9
|
Цитата:
Код:
|
|
14.06.2012, 12:10 | #5 |
Пользователь
Регистрация: 11.05.2012
Сообщений: 85
|
Хорошо, monseigneur Walter, по другим отзывам и отсутствию Вашей реакции я вижу, что мне нужно продолжить.
Может быть, Вы и так знаете, но по Вашему фрагменту кода не видно, чтобы Вы это знание использовали: надо проверять на недопустимость значения, введенные от руки в элементы пользовательского ввода (то есть всё, что появляется на экране для ввода чего-нибудь, надо проверять). Как минимум, надо проверять, введено ли что-нибудь вообще и на это в коде реагировать, и это надо делать для каждого элемента. Просто иначе Ваша прога будет выдавать не то, что нужно, или - что гораздо чаще - просто вываливаться в ОС с каким-нибудь наведенным сообщением или зависать, потому что "абсолютно безопасного кода" на самом деле не существует. В Вашем случае применительно к конкретной строчке я бы применил следующий код (именно так или с вариациями, но я всегда делаю проверку ввода): Код:
Trim нужен, потому что user, прежде чем что-то ввести, в задумчивости обычно жмет клавишу <пробел>, а пробел или несколько пробелов - это не есть пустой ввод, который нам надо отловить и отсечь. Замечу, что это всего лишь МИНИМАЛЬНАЯ проверка ввода, она не затрагивает стиль представления числа и допустимость на пределы. Но в 99% случаев и этого достаточно, более сложной проверки не требуется. PS: Можно также писать код проверки в обработчике OnValidating для каждого элемента ввода, но это мне кажется не очень удобным (предположим, ввел не так, но может быть, это все-таки совместимо со значениями других введенных полей - это можно определить только в основном коде, или произойдёт усложнение кода множеством флагов). Это уже дело вкуса - что где писать,- но проверка нужна! Последний раз редактировалось Гаврилов; 14.06.2012 в 12:27. |
14.06.2012, 12:28 | #6 | |
Регистрация: 13.06.2011
Сообщений: 9
|
Цитата:
разумеется проверка строки это выход, но зачем всё усложнять? |
|
14.06.2012, 12:58 | #7 |
Пользователь
Регистрация: 11.05.2012
Сообщений: 85
|
Специально для Hexy
А для того, чтобы на попадать в исключения, которые тоже требуют обработки. Вы предлагаете, не проверяя качество ввода каждого из полей формы (а их бывают десятки), каждый раз попадать в Exception с выводом пространного сообщения об ошибке? Это что-то новенькое в программировании. И зачем только люди трудились, создавая средства проверки вводимых данных, когда все так просто! PS: Блоки try-catch нужны, но это не панацея! Они нужны, чтобы не было краха программы в случаях, когда программист чего-то не учел, но зачем специально до этого доводить? БЛИН Последний раз редактировалось Гаврилов; 14.06.2012 в 13:18. |
14.06.2012, 13:31 | #8 |
Пользователь
Регистрация: 11.05.2012
Сообщений: 85
|
Ну, с Hexy (Гексинг), все ясно: я бы его в отдел разработки ПО не взял, исходя из того, что он будет писать заведомо неграмотные программы, а потом выпереть наружу программиста-верхогляда будет не так-то просто (потребуются время и деньги на пособие), и кому-то придется за него поработать, а в отделе есть план, рассчитанный на каждую душу.
Но хотелось бы увидеть ответный отзыв зачинщика - Вальтера: на чем же он остановился? Последний раз редактировалось Гаврилов; 14.06.2012 в 13:43. |
14.06.2012, 13:56 | #9 |
Дружите с Linq ;)
Форумчанин
Регистрация: 15.10.2008
Сообщений: 822
|
2Гаврилов:
Не стоит так нападать на человека, недостаток опыта - это еще не конец света 2Hexy: 1)try-catch не следует использовать в тех местах, где можно сделать проверки, исключающие ошибки ( исполняется код дольше, все равно придется обрабатывать ошибку и прерывать исполнение процедур). 2) Если ставить отлов ошибок, то на конкретный тип ошибки. Если ловить все ошибки, то маскируются ошибки, которые могут возникнуть в других местах и отловить их будет очень сложно.
Не давай организму поблажки, каждый день тренируй его в шашки..
|
14.06.2012, 14:12 | #10 | |||
Регистрация: 13.06.2011
Сообщений: 9
|
Цитата:
а еще я школьник, поэтому на работу меня всё равно не возьмут, я лишь стараюсь помочь людям таким образом, каким это видется правильно для меня, если вы не согласны, это ваше право. [q]заведомо неграмотные программы[/q] вы недооцениваете мою мощь ^_^ Цитата:
Цитата:
Код:
Последний раз редактировалось Stilet; 14.06.2012 в 20:30. |
|||
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Где ошибка в этом исходном коде на языке Си? Или ошибка в Excel? | ArchiCurtis | Помощь студентам | 2 | 07.04.2012 14:16 |
Ошибка в коде | Sylar9 | Win Api | 5 | 24.03.2012 20:38 |
Ошибка в коде | drzod | C# (си шарп) | 1 | 21.02.2011 12:03 |
Ошибка в коде, ошибка в css или это проблема с совместимостью с браузерами? | ankris | HTML и CSS | 5 | 23.11.2010 16:58 |
Ошибка в коде | Molochnik | Общие вопросы C/C++ | 0 | 20.06.2010 07:50 |