Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
lavengerl
0 / 0 / 0
Регистрация: 18.09.2011
Сообщений: 77
#1

try-throw-catch - C++

04.12.2011, 19:18. Просмотров 1031. Ответов 5
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#include <iostream>
#include <math.h>
 
using namespace std;
 
class Drob
{
 
public:
int obchuslennia (int a, int b);
void Init ();
int a,b,c;
    Drob(int _a,int _b) //конструктор
    {
        a=_a;
        b=_b;
    }
    };  
void Drob::Init ()
{
    cout<<"Введiть чисельник дробу"<<endl;
    cin>>a;
    cout<<"Введiть знаменник дробу"<<endl;
    cin>>b;
if(a==0) throw "\tДРIБ РIВНИЙ НУЛЮ";
if(b==0) throw "\tДIЛЕННЯ НА НУЛЬ";
if(a<b) throw "\tДРIБ ПРАВИЛЬНИЙ";
 
}
int obchuslennia (int _a, int _b)
{
int i;
for (i=0;_a>=_b;i++) _a-=_b;
return i;
}
 
void main()
{
int x;
setlocale( LC_ALL, "Ukrainian");
Drob obj(6,3);
cout<<"Бажаєте ввести дрiб з клавiатури?(1-так, iнше-нi)"<<endl;
cin>>x;
if(x==1) 
    {
        try
        {
            obj.Init();
        }
        catch (char*s)
        {
            cout<<"Error!!!"<<s<<endl;
            system("Pause");
            system("cls");
            obj.Init();
        }
    }
obj.c=obchuslennia (obj.a,obj.b);
cout<<"чисельник="<<obj.a<<endl;
cout<<"знаменник="<<obj.b<<endl;
cout<<"цiла частина="<<obj.c<<endl;
system("Pause");
system("cls");
}

программка в общем то рабочая. Есть три исключения у меня, при которых будет выдаватся ошибка. Если знаменатель равен нулю, если числитель равень нулю, и если числитель меньше знаменателя.
Все работает если во время работы программы вызвать только одно исключение. Если же вызвать одно, выдаст сообщение, дальше программа продолжает работу, и вызвать еще второе, то вылетает ошибка студии, и приходится прерывать програмку.
В ошибке вот такой текст:
Unhandled exception at 0x7547b760 in laba2 programming.exe: Microsoft C++ exception: char at memory location 0x0039f3f8..
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.12.2011, 19:18
Здравствуйте! Я подобрал для вас темы с ответами на вопрос try-throw-catch (C++):

try, catch, throw - C++
пишу класс namespace mystd { const uint32_t def_size = 1 &lt;&lt; 20; //default memory container template&lt;typename T&gt; ...

Try..catch..Throw - C++
Объясните пожалуйста разницу. Желательно с примерами, например деление на ноль, ну или чтобы было сразу несколько исключений. Расскажите...

Try, catch, throw - C++
Подскажите, как с помощью try, catch, throw, обработать исключение на вводимый тип данных? Например, допускается только тип int, что...

throw, try, catch - C++
Пожалуйста, помогите разобраться в том, что это такое, и как его правильно использовать. Где можно об этом почитать? P.S. только начал...

Try Throw Catch пример - C++
Как-то не особо много инфы нарыл по данной теме... Может у кого есть какие уже реализованные примеры?

Try,catch,throw,OVERFLOW! - C++
Добрый вечер! И СНОВА с вами try..catch...:p Я очень долго пытался понять try-catch сам, читал везде, где только можно(ссылки давать...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Propel
0 / 0 / 0
Регистрация: 04.12.2011
Сообщений: 6
04.12.2011, 19:22 #2
врядле кто будет вам делать)
0
lavengerl
0 / 0 / 0
Регистрация: 18.09.2011
Сообщений: 77
04.12.2011, 19:23  [ТС] #3
зачем ее делать? она готова, только подсказать что исправить.
0
Chelioss
180 / 180 / 4
Регистрация: 08.01.2011
Сообщений: 1,133
04.12.2011, 19:31 #4
У вас исключение выбрасывается в блоке catch, а должно в try.

Добавлено через 33 секунды
C++
1
2
system("cls");
 obj.Init();
1
LosAngeles
Заблокирован
04.12.2011, 19:34 #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <iostream>
#include <math.h>
 
using namespace std;
 
class Drob
{
 
public:
int obchuslennia (int a, int b);
void Init ();
int a,b,c;
        Drob(int _a,int _b) //конструктор
        {
                a=_a;
                b=_b;
        }
        };      
void Drob::Init ()
{
        cout<<"Введiть чисельник дробу"<<endl;
        cin>>a;
        cout<<"Введiть знаменник дробу"<<endl;
        cin>>b;
if(a==0) throw "\tДРIБ РIВНИЙ НУЛЮ";
if(b==0) throw "\tДIЛЕННЯ НА НУЛЬ";
if(a<b) throw "\tДРIБ ПРАВИЛЬНИЙ";
 
}
int obchuslennia (int _a, int _b)
{
int i;
for (i=0;_a>=_b;i++) _a-=_b;
return i;
}
 
void main()
{
int x;
setlocale( LC_ALL, "Ukrainian");
Drob obj(6,3);
cout<<"Бажаєте ввести дрiб з клавiатури?(1-так, iнше-нi)"<<endl;
cin>>x;
if(x==1) 
        {
            label:
                try
                {
                        obj.Init();
                }
                catch (char*s)
                {
                        cout<<"Error!!!"<<s<<endl;
                        system("Pause");
                        system("cls");
                        goto label;
                }
        }
obj.c=obchuslennia (obj.a,obj.b);
cout<<"чисельник="<<obj.a<<endl;
cout<<"знаменник="<<obj.b<<endl;
cout<<"цiла частина="<<obj.c<<endl;
system("Pause");
system("cls");
}
1
lavengerl
0 / 0 / 0
Регистрация: 18.09.2011
Сообщений: 77
04.12.2011, 19:52  [ТС] #6
спасибо
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.12.2011, 19:52
Привет! Вот еще темы с ответами:

try, throw, catch...обработка исключений - C++
помогите разобраться с обработкой исключений...при вводе пароля больше 10 символов должна быть непредвиденная ошибка, пытаюсь ее поймать,но...

Try throw catch в решении уравнения - C++
Есть уравнение y=1/sqrt(x-3). нужно считать x, пусть он будет целым. а затем с помощью исключений обработать ошибки: 1) ввели...

C++ try catch throw в разных функциях - C++
try и catch находятся в одной функции а throw вызывается из другой. ну MVS выкидывает исключение вместо передачи управления. что делать?...

try catch throw для чего нужны? - C++
Для чего нужны эти операторы? Линканите пожалуйста статью, где доходчиво объяснено их применение, в разных вариантах (например я видел...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
04.12.2011, 19:52
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru