171 / 106 / 51
Регистрация: 27.11.2015
Сообщений: 1,268
|
||||||
1 | ||||||
Обработка исключений31.08.2017, 13:16. Показов 4838. Ответов 18
Метки нет (Все метки)
Задание
Используя Visual Studio, создайте проект по шаблону Console Application. Создайте класс Calculator. В теле класса создайте четыре метода для арифметических действий: (Add – сложение, Sub – вычитание, Mul – умножение, Div – деление). Метод деления должен делать проверку деления на ноль, если проверка не проходит, сгенерировать исключение. Пользователь вводит значения, над которыми хочет произвести операцию и выбрать саму операцию. При возникновении ошибок должны выбрасываться исключения. Нужно проверить, правильно ли я отработал исключение /0? И как к примеру добавить во все методы обработки искл, если ввёл данные не того формата которого требуется?
Не понимаю как работать с искл? Что к примеру надо написать в try чтобы обработать искл , если я введу числа =null(точнее ни чего не введу)? Добавлено через 11 секунд Не понимаю как работать с искл? Что к примеру надо написать в try чтобы обработать искл , если я введу числа =null(точнее ни чего не введу)?
0
|
31.08.2017, 13:16 | |
Ответы с готовыми решениями:
18
Обработка исключений Обработка исключений Обработка исключений Обработка исключений |
Unnamed
160 / 158 / 81
Регистрация: 09.06.2011
Сообщений: 852
|
||||||
31.08.2017, 13:25 | 2 | |||||
ShmelVG,
1
|
31 / 14 / 5
Регистрация: 19.11.2014
Сообщений: 617
|
|
31.08.2017, 13:30 | 3 |
Вот эту часть тоже в try catch сделай, чтобы если в int32 введенное в консоли перевести не удалось, то программа не вылетала, а исключение генерировалось.
0
|
171 / 106 / 51
Регистрация: 27.11.2015
Сообщений: 1,268
|
|
31.08.2017, 13:36 [ТС] | 4 |
0
|
Unnamed
160 / 158 / 81
Регистрация: 09.06.2011
Сообщений: 852
|
|
31.08.2017, 13:38 | 5 |
ShmelVG, скобки убери после catch, забыл что-то..
0
|
171 / 106 / 51
Регистрация: 27.11.2015
Сообщений: 1,268
|
|
31.08.2017, 13:46 [ТС] | 6 |
kingzfate, Странно, делю на 0 и пишет необработанное исключение(
Добавлено через 48 секунд Chizel, вот я и не могу догнать что в какой блок раскидать) Добавлено через 1 минуту kingzfate, А, всё, получилось)Убрал int c = a/b;
0
|
Unnamed
160 / 158 / 81
Регистрация: 09.06.2011
Сообщений: 852
|
||||||
31.08.2017, 13:47 | 7 | |||||
Сообщение было отмечено ShmelVG как решение
Решение
ShmelVG, значит вы что-то делаете не так, вот пример
0
|
171 / 106 / 51
Регистрация: 27.11.2015
Сообщений: 1,268
|
|
31.08.2017, 14:01 [ТС] | 8 |
kingzfate, а как добавить ещё исключение если надо обезопасить от ввода null в a и b?
0
|
Unnamed
160 / 158 / 81
Регистрация: 09.06.2011
Сообщений: 852
|
||||||
31.08.2017, 14:05 | 9 | |||||
ShmelVG, вместо обычного ввода А пишешь эти строки
1
|
31 / 14 / 5
Регистрация: 19.11.2014
Сообщений: 617
|
||||||
31.08.2017, 14:52 | 10 | |||||
Сообщение было отмечено ShmelVG как решение
Решение
1
|
171 / 106 / 51
Регистрация: 27.11.2015
Сообщений: 1,268
|
|
31.08.2017, 15:05 [ТС] | 11 |
kingzfate, что-то ни как не получается ((...Вы могли показать на моём примере(чуть больше кода)
Добавлено через 4 минуты Chizel, Круто!Спасибо)) Но честно, не понимаю как он обработал именно эту ошибку? Как он понял что имеено nall будет, а не другие искл? Или все искл в Exception уже есть и он автоматом определяет какое исключение? Добавлено через 35 секунд Chizel, Круто!Спасибо)) Но честно, не понимаю как он обработал именно эту ошибку? Как он понял что имено nall будет, а не другие искл? Или все искл в Exception уже есть и он автоматом определяет какое исключение? Добавлено через 47 секунд (инет лагает )"именно
0
|
Unnamed
160 / 158 / 81
Регистрация: 09.06.2011
Сообщений: 852
|
|
31.08.2017, 15:12 | 12 |
ShmelVG, то что сделал Chizel, обработает любую ошибку в данном контексте
0
|
31 / 14 / 5
Регистрация: 19.11.2014
Сообщений: 617
|
|||||||||||
31.08.2017, 15:14 | 13 | ||||||||||
ShmelVG, Все исключения наследуются от одного, самого главного. В данном случае вряд ли в этом коде еще может возникнуть какое то исключение, кроме того, что при Convert.ToInt32 вывалится, что строка не может быть сконвертирована в число. Поэтому я не заморачиваясь и написал тебе
По идее ты должен обработать его, для ввода ерунды вместо чисел. Если есть еще какие то исключения, то обрабатывай их в следующих блоках catch в порядке иерархии от низшего к высшему, чтобы при разных исключениях у тебя разные сообщения выводились.
1
|
171 / 106 / 51
Регистрация: 27.11.2015
Сообщений: 1,268
|
|
31.08.2017, 15:29 [ТС] | 14 |
Chizel, т.е. по идее в реале все коды должны быть разбиты по частям и находиться в try/catch?
0
|
Unnamed
160 / 158 / 81
Регистрация: 09.06.2011
Сообщений: 852
|
|
31.08.2017, 15:34 | 15 |
ShmelVG, если приложение не большое, то да. А если уже какой то корпоративный проект, то от этого вызова лучше отказаться, он может "есть" очень много памяти если не уследить за ним.
0
|
171 / 106 / 51
Регистрация: 27.11.2015
Сообщений: 1,268
|
|
31.08.2017, 15:36 [ТС] | 16 |
Chizel,
попробовал так и при делении целого на 0 выдаёт "бесконечность"....что это?))))
0
|
Unnamed
160 / 158 / 81
Регистрация: 09.06.2011
Сообщений: 852
|
|
31.08.2017, 15:49 | 17 |
ShmelVG, ну правильно, если делить на 0 будет бесконечность, т.е. математическая бесконечность представляет собой такую величину, которую теоретически и практически невозможно вычислить.
0
|
31 / 14 / 5
Регистрация: 19.11.2014
Сообщений: 617
|
||||||
31.08.2017, 16:02 | 18 | |||||
ShmelVG, Кто куда выдает? Блок catch срабатывает?
Добавлено через 11 минут Тебе нужно, чтобы при делении на ноль возникало исключение? Если да, то вот так можно сделать
1
|
171 / 106 / 51
Регистрация: 27.11.2015
Сообщений: 1,268
|
|
31.08.2017, 16:29 [ТС] | 19 |
Оке, гляну)
0
|
31.08.2017, 16:29 | |
31.08.2017, 16:29 | |
Помогаю со студенческими работами здесь
19
Обработка исключений Обработка исключений Обработка исключений Обработка исключений Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |