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

Исключения - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Открыть файл через консоль http://www.cyberforum.ru/cpp-beginners/thread914171.html
ребят подскажите ,есть текстовый файл в екселе,хочу сделать чтоб в консольном приложении при нажатии опред клавиши этот файл открывало отдельным процессом в проге микрософт ексель,т.е как будто я...
C++ Отправка письма на мыло С помощью какого кода можно отправить письмо на мыло (C++ конечно)?? Я просто такое ещё не изучал и в нете ничего толкового не нашел... Напишите код http://www.cyberforum.ru/cpp-beginners/thread914170.html
ИИ нехочет ходить куда надо C++
Доброго времени суток. Возникла проблема с ИИ, который никак не хочет корректно работать. Если кто сможет помочь, заранее благодарю. Дано: карта в виде массива 15х20. 1 - возможно движение, 0 -...
C++ Друзья, я нуждаюсь в советах
Здравствуйте Друзья, я нуждаюсь в советах. Мне было всегда интересно. Вот как же программисты создают разные сложные программы, например плееры, игры и т.д. Я знаю, что программист один сам не...
C++ Как в переменную записать текст, а затем в конце добавить значение переменной? http://www.cyberforum.ru/cpp-beginners/thread914155.html
Как в переменную записать текст, а затем в конце добавить значение переменной? Как ни пробовал, компилятор (Dev C++) всегда выдает ошибки, но если тип переменной string, тогда не выдает ошибки на...
C++ Посчитать максимальное количество символов в вещественном типе Добрый день. Вроде не сложный вопрос, но загнал в штопор. Как посчитать максимальное количество используемые символов в типе double? Отталкиваясь от std::numeric_limits<double>::max() и... подробнее

Показать сообщение отдельно
faradej
0 / 0 / 0
Регистрация: 25.04.2013
Сообщений: 67

Исключения - C++

28.06.2013, 18:29. Просмотров 432. Ответов 1
Метки (Все метки)

Привет всем. Помогите плиз с задачкой, никак не могу решить, нужно из кода ниже сделать классы производными от logic_error, определенного в загаловочном файле <stdexcept>. Сделать так чтобы каждый метод what() сообщал имя функции и суть проблемы. Объекты исключений не должны содержать значение ошибки, они должны просто поддерживать метод what().

Помогите плиз, а то уже крыша едет
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
//error4.cpp – using exception classes
#include <iostream>
#include <cmath> // or math.h, unix users may need -lm flag
#include "exc_mean.h"
// function prototypes
double hmean(double a, double b);
double gmean(double a, double b);
int main()
{
    using std::cout;
    using std::cin;
    using std::endl;
    
    double x, y, z;
 
    cout << "Enter two numbers: ";
    while (cin >> x >> y)
    {
        try {                  // start of try block
            z = hmean(x,y);
            cout << "Harmonic mean of " << x << " and " << y
                << " is " << z << endl;
            cout << "Geometric mean of " << x << " and " << y
                << " is " << gmean(x,y) << endl;
            cout << "Enter next set of numbers <q to quit>: ";
        }// end of try block
        catch (bad_hmean & bg)    // start of catch block
        {
            bg.mesg();
            cout << "Try again.\n";
            continue;
        }                  
        catch (bad_gmean & hg) 
        {
            cout << hg.mesg();
            cout << "Values used: " << hg.v1 << ", " 
                 << hg.v2 << endl;
            cout << "Sorry, you don't get to play any more.\n";
            break;
        } // end of catch block
    }
    cout << "Bye!\n";
    // cin.get();
    // cin.get();
    return 0;
}
 
double hmean(double a, double b)
{
    if (a == -b)
        throw bad_hmean(a,b);
    return 2.0 * a * b / (a + b);
}
 
double gmean(double a, double b)
{
    if (a < 0 || b < 0)
        throw bad_gmean(a,b);
    return std::sqrt(a * b); 
}
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
// exc_mean.h  -- exception classes for hmean(), gmean()
#include <iostream>
 
class bad_hmean
{
private:
    double v1;
    double v2;
public:
    bad_hmean(double a = 0, double b = 0) : v1(a), v2(b){}
    void mesg();
};
 
inline void bad_hmean::mesg()
{   
    std::cout << "hmean(" << v1 << ", " << v2 <<"): "
              << "invalid arguments: a = -b\n";
}
 
class bad_gmean
{
public:
    double v1;
    double v2;
    bad_gmean(double a = 0, double b = 0) : v1(a), v2(b){}
    const char * mesg();
};
 
inline const char * bad_gmean::mesg()
{  
    return "gmean() arguments should be >= 0\n";
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru