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

Разобраться с исключениями - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ операторы цикла http://www.cyberforum.ru/cpp-beginners/thread310266.html
написать программу для решения уравнений: http://s2.ipicture.ru/uploads/20110601/A52Swkt6.png http://s2.ipicture.ru/uploads/20110601/T4MTckU6.png
C++ Eclipse Поставил eclipse на linux, для работы на c++ есть ли мануалы на русском к нему? http://www.cyberforum.ru/cpp-beginners/thread310261.html
Построение графиков C++
ПОМОГИТЕ СРОЧНО!!! Необходимо построить кривые по заданному параметрическому представлению улитка Паскаля x=a*(cos(t))^2 + b*(cos(t)) y=b*cos(t)*sin(t) + b*(sin(t)); a>0, b>0, t принадлежит...
Поправте кодик пожалуйста C++
Задача: Задан массив X из N элементов, определить его последний нулевой элемент, вычислить сумму дробных положительных элементов и вывести индексы целых, которые делятся на 5 без остатка. ...
C++ c++ stl удаление елемента из list http://www.cyberforum.ru/cpp-beginners/thread310253.html
for(std::list<gun>::iterator iter = Gun.begin(); iter != Gun.end(); iter++) { iter->controle(); if(iter->getlife() == 0) // На этом месте Gun.erase(iter++); // выдаешь ошибку...
C++ пожалуйста очень срочно нужна программа форматной печати файла.... Текст задания: Разработать программу форматной печати файла на странице. Число строк и размер строки задаётся пользователем. Помоги пожалуйста нужно до 3.06.2011 Зарание Спасибо подробнее

Показать сообщение отдельно
Gepar
1177 / 533 / 20
Регистрация: 01.07.2009
Сообщений: 3,517

Разобраться с исключениями - C++

01.06.2011, 18:35. Просмотров 397. Ответов 4
Метки (Все метки)

Накопилось пара вопросов по исключениям.
Собственно мой класс исключений производный от стандартного класса runtime_error, ничего особенного не делает, только для теста.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdexcept>
#include <string>
using namespace std;
 
class re1: public runtime_error
{
    public:
    re1(string a)
    :runtime_error(a)
    {
        cout<<"\nre1 is running";
    }
};
 
class re2: public runtime_error
{
    public:
    re2(string a)
    :runtime_error(a)
    {
        cout<<"\nre2 is running";
    }
};
Ну и дальше main и тут же вопрос, почему вот так
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
#include <iostream>
#include <stdexcept>
#include "re1.cpp"
using namespace std;
 
int main()
{
    cout<<"\nSTART";
    int a;
    cin>>a;
    try
    {
        cout<<"\nTRY BLOCK";
        if (a==0)
        {
            re1 a("RE1");
            throw a;
        }
        if (a==1)
        {
            re2 a("RE2");
            throw a;
        }
    }
    catch(runtime_error &x)
    {
        cout<<'\n'<<x.what()<<" is got";
    }
    return 0;
 
}
Мой catch(runtime_error &x) перехвачивает исключение re1 и re2.
А вот так
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
#include <iostream>
#include <stdexcept>
#include "re1.cpp"
using namespace std;
 
int main()
{
    cout<<"\nSTART";
    int a;
    cin>>a;
    try
    {
        cout<<"\nTRY BLOCK";
        if (a==0)
         re1 a("RE1");
        else
         re2 a("RE2");
        throw a;
    }
    catch(runtime_error &x)
    {
        cout<<'\n'<<x.what()<<" is got";
    }
    return 0;
 
}
Уже не перехвачивает?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru