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

Обработка исключений (Exception) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Найти счёт при оптимальной стратегии двух игроков http://www.cyberforum.ru/cpp-beginners/thread1224980.html
взялся тут решать задачку с олимпиады, и честно говоря уже час потратил за зря...Никак не могу продумать сам алгоритм игры игроков... Игроки совершают ходы по очереди. На каждом ходу игрок забирает число, написанное в его текущей ячейке, затем ставит туда ноль и переходит в смежную слева или справа ячейку (разумеется, игрок не может выходить за пределы массива). Два игрока могут в некоторый...
C++ Печать из консоли на принтер Здравствуйте столкнулся с такой проблемой как печать с консольного окна результата программы. Хотел сделать следующее сам код программы напечатать допустим на одной стороне листа, а то что в итоге получиться "в консольном окне" это напечатать на другой стороне чтобы легко можно было просмотреть результат. Как это можно сделать подскажите. http://www.cyberforum.ru/cpp-beginners/thread1224975.html
Записать в третий файл через один содержимое первого файла и второго C++
Даны 2 файла содержащие числа , записать в 3 файл через один содержимое первого файла и второго файла и сумму первого и второго
Управление перемещением символов в командной строке C++
используя интерактивный ввод данных управлять перемещением символов в командной строке
C++ Для целого числа найти его представление в виде среднего арифметического квадратов чисел http://www.cyberforum.ru/cpp-beginners/thread1224915.html
Заставляют решить такую задачу: Для целого числа N найти его представление в виде среднего арифметического квадратов натуральных чисел. Например, 2007=(2^2+12^2+22^2+86^2)/4. В первой строке ввода содержится одно целое число N (1 ≤ N ≤ 100000). Вывести в первой строке число K (1 ≤ K ≤ 1000). Во второй строке K натуральных чисел от 1 до 1000, среднее арифметическое квадратов которых равно...
C++ Как преобразовать код для n-ого количества строк? Всем доброго дня, у меня есть проблема с кодом, не получается вот что, сделать так чтобы частоты символом считались для всего текста, а не для строки отдельно. Есть код: #include "stdafx.h" #include <iostream> #include <string.h> #include <stdio.h> #include <Windows.h> #include <stdlib.h> using namespace std; int main() подробнее

Показать сообщение отдельно
Дантe
0 / 0 / 0
Регистрация: 28.04.2013
Сообщений: 28
09.07.2014, 15:05     Обработка исключений (Exception)
Всем приветю У меня возникла такая ситуация: в main создаю локальную переменную типа long, затем прошу пользователя задать эту переменную и потом эту переменную передаю в объект с помощью set функции. Не знаю, как правильно обработать исключения, наподобии, если было введено не не long, а что нибуть еще или больше его размера.

класс для обработки исключений:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Exception
{
 public:
  long ID;
  std::string msg;
  Exception()
    {
            ID=0;
        msg="Invalid ID.";
    }
  Exception(long empID)
    {
        ID=empID;
        msg="Invalid ID " + ID;
    }
};
класс с функцией set:
C++
1
2
3
4
5
void Employee::setEmployeeID(long empID) throw (Exception*)
{
  if (empID <= 0) throw new Exception(empID);
    employeeID=empID;
}
маин:
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
int main()
{
  long empID = 0;
    Employee emp;
    
  cout << "Enter Employee ID : ";
  cin >> empID;
try {
  emp.setEmployeeID(empID);
}
catch(const Exception &e)
{
    cout << e.m_msg << " " << e.ID << endl;
}
catch(const Exception *e)
{
    cout << e->m_msg << " " << e->ID << endl;
    delete e;
}
catch(...)
{
    cout << "Something else ";
    throw -1;
}
return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 14:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru