![]() |
|
Модераторы: bsa |
![]()
|
|
| stat007 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 521 Регистрация: 9.10.2008 Репутация: -2 Всего: -4 |
Помогите разобраться с работой исключительных ситуаций.
К примеру есть такая задача: Вводится массив чисел с клавиатуры, исключительная ситуация должна обработать действие ввода числа 0, и потом вывести все значения пропуская введённые нули!
Попытался написать код, но понимаю что не так! Подскажите как правильно нужно сделать??? |
|||
|
||||
| zim22 |
|
|||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
шедевр...
совет: почитай книжечку. в любом учебнике по С++ примеров завались. |
|||
|
||||
| stat007 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 521 Регистрация: 9.10.2008 Репутация: -2 Всего: -4 |
спс за совет, но не в одной книжке я не нашёл хорошего примера по данной теме!
Это сообщение отредактировал(а) stat007 - 20.3.2010, 20:41 |
|||
|
||||
| zim22 |
|
|||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
|
|||
|
||||
| ForceKeeper |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 17.3.2010 Где: Минск Репутация: нет Всего: нет |
В try-блок ты помещаешь код, в котором может возникнуть ошибка. Если такая возникает, то нужно выбросить ошибку с ее типом (инт, дабл или любой другой *включая свои*).
Обрати внимание, что в таком случае после типа должны идти круглые скобки. Сразу за трай-блоком должны идти catch-блоки, каждый из которых отлавливает определенный тип ошибки (инт, дабл и т.д.), есть еще вариант кэтча, который ловит ошибки любого типа. Также можно выкидывать не просто тип ошибки, а уже какую-то переменную. В таком случае наша ошибка будет характеризоваться не только типом переменной, но и ее значением, которое сможет получить кэтч-блок. Внутри же кэтча ты пишешь код, обрабатывающий ошибку. Вот тебе пример. Программа просит ввести число, если оно оказалось от нуля до единицы, то мы кидаем ошибку с данной переменной. Ее хватает кэтч, ловящий инты, принимает значение переменной и использует его в выводе на экран, что юзер такой нехороший ввел число от 0 до 10. Если же ввод числа был корректным (меньше нуля или больше 10), то программа проскакивает кэтч и рапортует о том, что число не попало в интервал от 0 до 10.
|
||||
|
|||||
| stat007 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 521 Регистрация: 9.10.2008 Репутация: -2 Всего: -4 |
ForceKeeper,
спасибо большое благодаря твоему примеру я понял что это такое и как с ней работать! |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
stat007, только имей в виду, что для исключений есть специальный стандартный интерфейс (абстрактный класс) std::exception (#include <exception>), а так же ряд готовых "ошибок", например, std::runtime_error (#include <stdexcept>).
|
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 52 Всего: 211 |
||||
|
||||
| Леопольд |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 943 Регистрация: 17.6.2009 Репутация: 3 Всего: 13 |
А, по уму, должен бы быть абстрактным...
-------------------- вопросов больше чем ответов |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 52 Всего: 211 |
||||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
||||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |