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

Exception Handling. Собственный класс для перехвата исключений - C++

Восстановить пароль Регистрация
 
Rabbit
0 / 0 / 0
Регистрация: 05.09.2015
Сообщений: 43
05.09.2015, 14:36     Exception Handling. Собственный класс для перехвата исключений #1
Помогите, пожалуйста, с данной задачей.

Задача:
Define an exception class called tornadoException. The class should have two constructors, including the default constructor. If the exception is thrown with the default constructor, the method what should return "Tornado: Take cover immediately!". The other constructor has a single parameter, say, m, of the int type. If the exception is thrown with this constructor, the method what should return "Tornado: m miles away; and approaching!" Write a C++ program to test the class tornadoException.

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
class tornadoException
 {
 public:
    tornadoException()
    {
        message = "Tornado: Take cover immediately!";
    }
    tornadoException(int m)
    {
        miles = m;
        message = "Tornado: ";
        cout <<  m << "miles away; and approaching!" << endl;
    }
    string what()
    {
        return message;
    }
 private:
    int miles;
    string message;
 };
 
int main()
 {  
    int distance;
 
    try
    {
        cout << "Enter distance";
        cin >> distance;
        cout << endl;
 
        if (distance == 0)
            throw tornadoException();
        
    }
    catch (tornadoException me)
    {
        cout << me.what() << endl;
    }
    
    
    system("pause");
 }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11811 / 6790 / 767
Регистрация: 27.09.2012
Сообщений: 16,840
Записей в блоге: 2
Завершенные тесты: 1
05.09.2015, 14:40     Exception Handling. Собственный класс для перехвата исключений #2
C++
1
2
3
4
5
6
7
8
9
    tornadoException() : miles(0) , message ("Tornado: Take cover immediately!")
    {
    }
    tornadoException(int m) : miles (m)
    {
        message = "Tornado: ";
        message += std::to_string( m ) ;
        message += " miles away; and approaching!" ;
    }
Rabbit
0 / 0 / 0
Регистрация: 05.09.2015
Сообщений: 43
05.09.2015, 14:50  [ТС]     Exception Handling. Собственный класс для перехвата исключений #3
Объясните пжл что неправильно.
А программа для тестирования правильно написана?
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11811 / 6790 / 767
Регистрация: 27.09.2012
Сообщений: 16,840
Записей в блоге: 2
Завершенные тесты: 1
05.09.2015, 14:51     Exception Handling. Собственный класс для перехвата исключений #4
Цитата Сообщение от Rabbit Посмотреть сообщение
А программа для тестирования правильно написана?
C++
1
2
3
4
5
6
7
8
9
10
11
12
    try
    {
        cout << "Enter distance";
        cin >> distance;
        cout << endl;
 
        if (distance == 0)
            throw tornadoException();
        else
            throw tornadoException(distance);
        
    }
имхо, лучше наследоваться от std::exception со всеми вытекающими.
Rabbit
0 / 0 / 0
Регистрация: 05.09.2015
Сообщений: 43
05.09.2015, 15:11  [ТС]     Exception Handling. Собственный класс для перехвата исключений #5
Большое спасибо!
Yandex
Объявления
05.09.2015, 15:11     Exception Handling. Собственный класс для перехвата исключений
Ответ Создать тему
Опции темы

Текущее время: 06:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru