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

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

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

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

05.09.2015, 14:36. Просмотров 329. Ответов 4
Метки нет (Все метки)

Помогите, пожалуйста, с данной задачей.

Задача:
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");
 }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.09.2015, 14:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Exception Handling. Собственный класс для перехвата исключений (C++):

Exception Handling Classes - C++
Задача: Write a program that prompts the user to enter a person’s date of birth in numeric form such as 8-27-1980. The program then...

Templates (composition). exception handling run-time error - C++
Код компилируется. Если делать циклы для push and pop размера такого чтоб не превышало размеры Стока то все работает нормально если...

Класс (объект) для перехвата сообщений своих окон - C++
Кто сможет показать как сделать реальный пример: Задача: для использования в VBA создать класс(объект) для перехвата сообщений своих...

Обработка исключений (Exception) - C++
Всем приветю У меня возникла такая ситуация: в main создаю локальную переменную типа long, затем прошу пользователя задать эту переменную и...

Создание своего класса исключений, наследование std::exception - C++
хотел создать свой класс исключений пронаследовав от std::exception, но немного запутался в конструкторах... конструктор же не наследуется,...

Написать собственный класс для ввода и вывода строки, подсчета количества символов в строке - C++
как написать собственный с++ класс для ввода и вывода строки, подсчета количества символов в строке

4
Croessmah
Ушел
Эксперт CЭксперт С++
13557 / 7707 / 872
Регистрация: 27.09.2012
Сообщений: 18,996
Записей в блоге: 3
Завершенные тесты: 1
05.09.2015, 14:40 #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!" ;
    }
0
Rabbit
0 / 0 / 0
Регистрация: 05.09.2015
Сообщений: 51
05.09.2015, 14:50  [ТС] #3
Объясните пжл что неправильно.
А программа для тестирования правильно написана?
0
Croessmah
Ушел
Эксперт CЭксперт С++
13557 / 7707 / 872
Регистрация: 27.09.2012
Сообщений: 18,996
Записей в блоге: 3
Завершенные тесты: 1
05.09.2015, 14:51 #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 со всеми вытекающими.
0
Rabbit
0 / 0 / 0
Регистрация: 05.09.2015
Сообщений: 51
05.09.2015, 15:11  [ТС] #5
Большое спасибо!
0
05.09.2015, 15:11
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.09.2015, 15:11
Привет! Вот еще темы с ответами:

Класс Стек Stack. не работает класс исключений - C++
Здравствуйте! Решил проверить код на пригодность, но почему то класс исключений выскакивает на ошибке. Я никак не могу понять такие вещи...

Написать обработчик исключений ситуации при преобразовании указателя на класс B до указателя на абстрактный класс А ... - C++
Написать обработчик исключений ситуации при преобразовании указателя на класс B до указателя на абстрактный класс А ... как сделать...

Собственный класс-итератор - C++
Создаю класс-итератор для класса Студенты. Сам класс студенты: #ifndef STUDENTS_H #define STUDENTS_H #include &lt;string&gt; ...

STL и собственный класс - C++
Подскажите, пожалуйста, как можно переопределить функцию STL для собственного класса. Например, push_front() или push_back() не работают...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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