Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
 Аватар для Андрей Дружинин
3 / 3 / 0
Регистрация: 10.02.2014
Сообщений: 45

Что использовать для проверки корректности введенного значения - If или try catch?

08.05.2014, 20:16. Показов 3362. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Проверку на правильность введенного значения лучше делать с помощью условного оператора или блоком try - catch, меня мучает вопрос, ответьте!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.05.2014, 20:16
Ответы с готовыми решениями:

Как можно использовать ASCII коды символов для проверки корректности ввода?
кто знает как можно использовать ASCII коды символов для проверки корректности ввода? вот у меня есть программа int main(){ char...

Проверка корректности введенного значения переменной типа char
Пользователь с клавиатуры вводит свой пол "м" или "ж", если введено другое значение, то должно выводиться сообщение о некорректности...

Регулярное выражение для проверки корректности доменного имени
Подскажите регулярное выражение для проверки корректности доменного имени вида xxxxxx.xxx (к примеру), а так же хорошую статью, по которой...

9
 Аватар для Spawn
995 / 893 / 354
Регистрация: 24.03.2014
Сообщений: 2,381
Записей в блоге: 2
08.05.2014, 20:23
От каждого конкретного случая зависит. Бывает, что проще запретить вводить лишние символы, чтобы не городить лишних проверок...
0
Заблокирован
08.05.2014, 20:27
Все проверки делаю ифом но всегда окружаю в try catch одно другому не мешает
0
 Аватар для Zuzik
298 / 256 / 57
Регистрация: 11.06.2012
Сообщений: 1,557
08.05.2014, 20:31
Есть возможность сделать ифом - делаешь ифом. Трай -кэтч - в случае если с ифом не получилось.
0
 Аватар для Spawn
995 / 893 / 354
Регистрация: 24.03.2014
Сообщений: 2,381
Записей в блоге: 2
08.05.2014, 20:45
ImFine, одно другое замедляет, читабельность кода убивает

Добавлено через 33 секунды
А ловить те же базовые Exception вообще крайне не советуется...
0
Заблокирован
08.05.2014, 20:52
Spawn, а почему не советуют их ловить? По-моему очень удобно - в случае чего отправил нужный Exception, и не нужно писать для каждого обработчик.
0
 Аватар для Spawn
995 / 893 / 354
Регистрация: 24.03.2014
Сообщений: 2,381
Записей в блоге: 2
08.05.2014, 20:56
Ev_Hyper, советуется ловить только наследников Exception, а не базовые типы (Exception, SystemException).
Цитата Сообщение от MSDN
Catching general exception types can hide run-time problems from the library user and can make debugging more difficult.
2
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
09.05.2014, 10:03
Ну тут же подход исключительно по ситуации.
Алгоритм примерно такой, при условии, что попытка действия без проверки или с провалившейся проверкой приводит к исключению:

1. Смогу ли я должным образом обработать возникшую ошибку ввода в текущем контексте? Если нет, то не нужно ни проверок, ни ловли (как вариант, отловить-таки исключение и перебросить его дальше, обернув в другое).
2. Если да, то гарантирует ли проверка 100% того, что исключение не возникнет после ее прохождения? Если да, то используется проверка.
3. Если нет, то используется проверка с последующей ловлей исключения (или только исключение), которое ожидается при ошибке и обрабатывается должным образом.
3
 Аватар для Metall_Version
2152 / 1289 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
09.05.2014, 15:39
Андрей Дружинин, с try все исключения не словишь - например пустая строка , или не верный диапазон значений , или недопустимые символы.. и тд
поэтому лучше с try совместно с if , делать конструкции такого плана

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
            try
            {
                if (string.IsNullOrWhiteSpace(textBox1.Text))
                    throw new ArgumentException("Поле пустое");
                // и таких проверок может быть много , разного плана
 
 
                // если все проверки окончены , то выполняем то что нам нужно
            }
            catch (ArgumentException ex)
            {
                MessageBox.Show(ex.Message, "Внимание !", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
1
 Аватар для Андрей Дружинин
3 / 3 / 0
Регистрация: 10.02.2014
Сообщений: 45
09.05.2014, 16:57  [ТС]
Metall_Version, договорились
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.05.2014, 16:57
Помогаю со студенческими работами здесь

Программа для проверки корректности записи арифметического выражения
Не могу понять даже с чего начинать писать код,может кто либо объяснить как это сделать?

Регулярное выражение для проверки корректности арифметического выражения
В этой теме https://www.cyberforum.ru/csharp-beginners/thread789349.html обсуждалось создание регулярного выражения для проверки введенного...

Составить программу для проверки, что больше a^3 или (2*a)^2 ,- для числа а вводимого с клавиатуры
Составить программу для проверки, что больше a3 или (2*a)2 ,- для числа а вводимого с клавиатуры

Try catch реализация для проверки вводимых типов данных в объект
Доброго времени суток, форум! Прошу помощи в реализации проверки потока ввода в класс на правильность типа данных с помощью try catch....

Функция для проверки введенного Ф.И.О.
Убедительная просьба, если кто-нибудь сталкивался, поделитесь тонкостями проверки корректности введенного в форму Ф.И.О. Может это будет...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru