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

try-catch - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Дано натуральное число (6 значное) записать его шестью цифрами, используя девятисегментный шаблон http://www.cyberforum.ru/cpp-beginners/thread770659.html
Добрый день. Недавно раздали нам задания и я не могу понять как его делать. 1 Дано натуральное число (6 значное) записать его шестью цифрами, используя девятисегментный шаблон. Я думал поначалу нужно подключить <windows.h>, но вроде мы такого не проходили. скорее всего нужно использовать псевдо графику, да?
C++ difference between debug and release MVS2010 Ума не приложу в какую сторону копать:read: Следующий фрагмент кода, в Дебаге работает совершенно верно, а в Релизе какие то ошибки если конкретно не работает оператор cin>>searchKey; case '2': { wcout<<L"a) в конец списка"<<endl <<L"b) вслед за указанным элементом (по ключу)"<<endl; cin>>otv; if(otv=='a') { http://www.cyberforum.ru/cpp-beginners/thread770651.html
посоветуйте хороший учебник по с++ C++
спасибо!
C++ виртуальная функция
class B { private: int a; int b; public: virtual void show();//есть виртуальная функция,которая выводит a и b } class N:public B {
C++ Задача с olympiads.ru http://www.cyberforum.ru/cpp-beginners/thread770616.html
Всем привет. Столкнулся с проблемой при решении задачи E "Распродажа" с сайла olympiads.ru (http://olympiads.ru/zaoch/2012-13/problems/index.shtml) Написал код: #include <iostream> #include <algorithm> int n,i,j,r; unsigned int c; long long a,b;
C++ Определить треугольники минимальной и максимальной площади, которые можно построить из отрезков 13. Известны длины отрезков a, b, c и d. Определить треугольники минимальной и максимальной площади, которые можно построить из этих отрезков. помогите решить эту задачу с помощью <stdio.h> <math.h> <iostream> подробнее

Показать сообщение отдельно
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
24.01.2013, 15:04     try-catch
yoghurt92, блоки catch нужны для каждого типа исключения, которое нужно поймать. Функция ведь не обязательно выбрасывает одно исключение.
Например, создадим новый класс исключения:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class OutOfRange {
 public:
   OutOfRange( std::wstring &str = L"Out of range" )
      : error( str )
   {
      
   }
 
   const std::wstring &getMessage() const {
      return error;
   }
 
 private:
   std::wstring error;
};
И добавим его в функцию для ограничения диапазона чисел:

C++
1
2
3
4
5
6
7
8
9
10
float quotient( int num1, int num2 )
{
    if ( num2 == 0 )
        throw DivideByZeroError();
 
    if ( num1 > 1000 || num2 > 2000 )
        throw OutOfRange();
 
    return (float) num1 / num2;
}
Тогда уже можно добавить второй catch блок:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
try{//включает код, который может сгенерировать исключение
        float result = quotient(number1, number2);
 
        wcout << L"Частное равно: " << result << "\n";
    }
    catch(DivideByZeroError error) {//обработчик ошибки
        wcout << L"ОШИБКА!";
        error.printMessage();
        cout << "\n";
 
        return 1;           //завершение при ошибке
    }
    catch(OutOfRange &error) {//обработчик ошибки
        wcout << L"ОШИБКА!: " << error1.getMessage();
        cout << "\n";
 
        return 1;           //завершение при ошибке
    }
В классе DivideByZero переменная num лишняя.
 
Текущее время: 17:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru