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

Как создавать информативные исключения? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Змейка в консоли: неправильное поведение функции http://www.cyberforum.ru/cpp-beginners/thread1304521.html
Всем привет! Пишу консольную змейку. Есть класс Snake и метод isSnake(), который работает некорректно (всегда возвращает true). Не могу разобраться, в чем ошибка, и как ее исправить? #include <iostream> using namespace std; int HEIGHT = 15; int WIDTH = 20;
C++ Отсортировать методом прямого включения Составить программу. Двумерный динамический массив размером NxM. Отсортировать методом прямого включения элементы стоящие от побочной диагонали. http://www.cyberforum.ru/cpp-beginners/thread1304520.html
Вывод первого слова из строки с помощью функции C++
#include <iostream> #include <cstdio> using namespace std; void slovo1(char *simv,char* result) { int i = 0; while( simv!=' ' || simv!=',' || simv!='.' && simv!=0)
Определить, есть ли в строке или столбце повторяющиеся элементы C++
необходимо написать код, который определяет есть ли в отдельной строке или в отдельном столбце повторяющиеся элементы?
C++ Вывести таблицу значений функции http://www.cyberforum.ru/cpp-beginners/thread1304515.html
Посмотрите пожалуйста програму, все работает, только в ответе во втором и третих столбиках должны быть числа со знаком+, может вы знаете в чем дело. #include <iostream.h> #include <math.h> #include <conio.h> double sum1(double x, double n); double sum2(double x, double eps); double term(double x, double k); double y(double x); double pi=acos(-1);
C++ Определить, сколько различных букв в слове Здравствуйте. Не могу разобраться со строками...Вот необходимо решить задачу: Дано слово. Определить, сколько различных букв в нем. Попробовала написать, но получилось, что программа выводит не подсчет количества, а позицию каждой буквы введенной. Помогите пожалуйста построить программу именно считывающую количество одинаковых букв. #include <iostream> #include <string> using namespace std;... подробнее

Показать сообщение отдельно
rikimaru2013
C++ Game Dev
 Аватар для rikimaru2013
2133 / 966 / 222
Регистрация: 30.11.2013
Сообщений: 3,231
18.11.2014, 23:52     Как создавать информативные исключения?
Цитата Сообщение от Dark Byte Посмотреть сообщение
внятного объяснения
1) Создаете свой класс Exception с полями char* error, int line и виртуал методом Show()
2) Унаследуйте от него еще один свой класс более конкретный FileException с полем bool file и допишите Show()
C++
1
2
3
4
5
6
void Show() 
{
Exception::Show;
cout << "FileException" << file << endl;
 
}
3) Выбрасывайте к примеру при отсуствии файла на диске
C++
1
2
3
string s("File open: can't open file");
s += filename;
throw FileException(s.getCstring(), __LINE__);
4) Ловите
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
try
{
// ...
}
catch (ZeroException& e)
{
 e.Show();
}
catch (FileException& e)
{
e.Show();
}
catch(Exception& e)
{
e.Show();
}
5) Программа не вылетит с треском и писком - а выведит на экран информативное исключенние


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