Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обработка исключений 
:(
    Опции темы
stat007
Дата 23.1.2010, 22:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 521
Регистрация: 9.10.2008

Репутация: -2
Всего: -4



Вообщем хочу более-менее разобраться с такой темой как: Исключительные ситуации в С++!
Написал ниже программу, но она работает не верно. По идее, как мне кажется данная программа должна словить первое введённое число типа double.. Но она этого не делает, В чём ошибка. И расскажи об этой теме более подробнее кто может. Если приведёте примеры будет вообще шикарно. 
За ранее спасибо! smile 
Код

#include<iostream>
#include<iterator>
using namespace std;
int main()
{
    cout<<"Begin! Enter numbers"<<endl;
    throw 4.4;
    int mas[20], n=0, x;
    try
    {
    while(cin>>x, x!=0 && n<20)
        mas[n++]=x;
    }
    catch(double)
    {
        cout<<"Error.."<<endl;
    }
    copy(mas,mas+n, ostream_iterator<int>(cout, " "));
    system("pause");
    return 0;
}

PM MAIL   Вверх
mes
Дата 23.1.2010, 22:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(stat007 @  23.1.2010,  21:00 Найти цитируемый пост)
Но она этого не делает,

перенесите throw внутрь блока try



--------------------
PM MAIL WWW   Вверх
stat007
Дата 23.1.2010, 22:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 521
Регистрация: 9.10.2008

Репутация: -2
Всего: -4



mes, 
Цитата

перенесите throw внутрь блока try

Ага, уже лучше, но всё-равно работает не так как хотелось бы, после запуска программы срабатывает catch и пишештся Error..., а хотелось бы чтобы что бы вводились целые числа с клавиатуры, и после того как ввелось бы число типа double, только тогда бы сработал этот catch..
PM MAIL   Вверх
mes
Дата 24.1.2010, 02:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(stat007 @  23.1.2010,  21:23 Найти цитируемый пост)

Ага, уже лучше, но всё-равно работает не так как хотелось бы, после запуска программы срабатывает catch и пишештся Error..., а хотелось бы чтобы что бы вводились целые числа с клавиатуры, и после того как ввелось бы число типа double, только тогда бы сработал этот catch.. 

ну так чего от программы ожидать того, чего Вы не написали. Сделайте проверку на дабл и если таковой, то возбуждайте исключение.
Тогда в try нужно поместить ввод, а не цикл.. и если считывать будете в инт, то не узнаете был ли на самом деле дабл..


Это сообщение отредактировал(а) mes - 24.1.2010, 02:23


--------------------
PM MAIL WWW   Вверх
azesmcar
Дата 24.1.2010, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 52
Всего: 211



stat007

Удали это к чертовой бабушке, try-catch не для того предназначен. Если обрабатываешь исключительную ситуацию в том же модуле, в котором генерируешь то исключения тебе не нужны.
PM   Вверх
mes
Дата 24.1.2010, 11:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(azesmcar @  24.1.2010,  09:37 Найти цитируемый пост)
try-catch не для того предназначен. 

Так он пока учится.. еще и не понял для чего нужны исключения.. smile Так что имхо ничего страшного в таком неправильном коде, главное что не чужой за свой выдает.. но вот этого 
Цитата(stat007 @  23.1.2010,  21:00 Найти цитируемый пост)
И расскажи об этой теме более подробнее кто может.

мало вероятно что дождется, потому что никому неохота исписывать основы, которые уже изложены тысычу раз.

автору повторю совет, прежде чем учиться программировать, научитесь читать книжки внимательно и понимать что в них написано, а также пользоваться гуглем.
потому как судя по посту Вы лишь пробежались по теме беглым взглядом... или ж в пол-уха послушали лекцию.
 smile 




--------------------
PM MAIL WWW   Вверх
azesmcar
Дата 24.1.2010, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 52
Всего: 211



Цитата(mes @  24.1.2010,  11:48 Найти цитируемый пост)
Так он пока учится.. еще и не понял для чего нужны исключения.. smile Так что имхо ничего страшного в таком неправильном коде, главное что не чужой за свой выдает.. но вот этого 

Ну учиться лучше сразу правильному подходу, но в общем да, ничего страшного.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0477 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.