Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Вычислить значение выражения https://www.cyberforum.ru/ cpp-beginners/ thread375581.html
ПОМОГИТЕ НАЙТИ ОФИБКУ В ПРОГЕ /**************************************************************************** * * * File : main.c * * * * Purpose : Console mode (command line) program. ...
C++ Преобразование типов. Дружественные функции
Создать класс комплексных чисел. Определить перегруженную функцию, возвращающую максимальный из двух аргументов. Функция не является членом класса комплексных чисел. Перегруженные функции имеют аргументы типа int, double, complex. Тело перегруженных функций должны быть одинаковыми. Создать два класса вектор (float *) и матрица (float **). Определить конструкторы - по умолчанию, с параметром, для...
C++ Помогите разобраться У меня есть координаты North,West,East,South. Мне нужно отобразить их на осях ОХ и ОУ. Допустим я ввожу North 5 East 3 South 1 Вывод х=3, у=4. #include <iostream> #include <cstring> using namespace std; https://www.cyberforum.ru/ cpp-beginners/ thread375566.html C++ Коммутатор Клозе Люди если Кто нибудь реализовывал коммутаор Клозе на С++ ОТЗОВИТЕСЬ, бьюсь с ним долго, но не могу победить! Может ссылку кто знает где толково почитать можно, как его реализовать , ну а если исходничек сбросите НИЗКИЙ вам поклон. У меня основа комутатор 4х4 нужно сделать 16х16 три яруса по 4ре микросхемы - никак не могу описать алгоритм коммутации - как не извернусь нахожу комбинацию котороая... https://www.cyberforum.ru/ cpp-beginners/ thread375552.html
C++ Вопрос про утилизацию классов
Как выполнить утилизацию класса? Допустим я написал код прототипа класса(интерфейс) и код определения класса. Теперь надо очереди откомпилировать? Еще я прочитал,что можно сделать так,чтобы вместо кода определения класса ,использовался машинный код.Как это сделать ?
C++ Вывод числовых кодов в шестнадцатеричном виде. https://www.cyberforum.ru/ cpp-beginners/ thread375545.html
Напишите программу, которая выводит буквы 'a' - 'z' . #include <iostream> int main(){ char letter = 97; while(letter < 123) {
C++ дать комментарии по одной из функций очень важно по контрольной не могу понять как выполняется функция сортировки, глаза разбегаются смысл не улавливаю можите на против каждой строчки написать комментарий выполнения в этой функции? вот само задание 1.Создать текстовый файл с исходными данными в соответствии с заданной структурой 2.Разработать меню, в котором предусмотреть следующие пункты: 1) ввод данных в динамический линейный список:... https://www.cyberforum.ru/ cpp-beginners/ thread375536.html Недопонял... Помогите пожалуйста... Со строками... C++
Доброго всем времени суток. Что объявляет следующая строка? char *s; Создаётся указатель на начало строки, например как на простой вектор, или же создаётся строка? Или и то и другое? Если создаётся указатель, он содержит в себе мусор, то есть может указывать на что-угодно -> изменяя строку, мы можем изменить любые данные. Я так думаю потому-что это происходит с указателями на, скажем, int....
C++ корректен ли код void f (struct x *this);? (объявление функции) https://www.cyberforum.ru/ cpp-beginners/ thread375511.html
...На солидном ресурсе встретил большой код, но я его конечно упростил до минимума. struct x { int y; }; //Вот на эту строчку ругается компилятор, говорит, что //ожидается троеточие или запятая перед this void f (struct x *this);
C++ Произвести замену всех отрицательных чисел на нули https://www.cyberforum.ru/ cpp-beginners/ thread375501.html
ПОмогите пожалуйста решить задачу в си Дан двухмерный массив размерностью 3х3.ПРоизвести замену всех отрицательных чисел на нули. Произвести вывод данного массива в виде матриц
Пространство имен std C++
Какой стиль лучше ? using std::cout; using std::endl; or using namespace std;
C++ Помогите с Использование оператора цикла Использование оператора цикла с параметром (for) для организации циклических вычислительных процессов Найти вектор Z = {z1,z2,...z10} , равный сумме двух векторов X = {x1,x2,..x10} и Y ={y1,y2,...,y10} по формуле Zi = Xi + Yi; i = 1,2,...10; Элементы вектора X заданы, организовать их ввод с клавиатуры. Значения компонент вектора Y вычисляются по формуле: Yi = 0.7 *... https://www.cyberforum.ru/ cpp-beginners/ thread375492.html
Заблокирован
31.10.2011, 18:54 0

Обработка ошибок - C++ - Ответ 2123853

31.10.2011, 18:54. Показов 1172. Ответов 1
Метки (Все метки)

Ответ

я делаю так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#inlude "TError.h" //шаблонный класс обработки ошибок
 
class CTest: public TError<CTest>  //подключаю обработчик ошибок
{
     Cildren myTest;
     ...
     public: 
          int Do() 
          {   
                SetError( myTest.Do() );   //если агрегированный класс вернул не ноль,
                                                       // значит метод завершился ошибкой
 
                ReactionError( METHOD_DO );  //Проверить, была ли ошибка, и отреагировать на неё.
                                                              //METHOD_DO  - идетификатор инцидента (метода), 
                                                              //в котором произошла ошибка
 
                return GetLastError(); //передать вызывающей стороне данные об ошибке (или успехе)
           }
};
Фокус в том, что благодаря специализации шаблона можно легко создать совершенно уникальный обработчик ошибок для самых разных конкретных классов.
Любой метод внутри класса, который может вернуть ошибку - должен быть проверен.
И если факт ошибки установлен - должна быть соответствующая реакция на эту ошибку.
Происходить это должно автоматически

Два слова о ReactionError( METHOD_DO );
Если ошибка -программная, понятно - зажгётся фонарик, который не очень вежливо потребует присутствия программиста.

Но если ошибка - некорректные входные данные (а они в принципе могут быть не корректными) - просто уведомление об отказе работать даже не обрушить программу.

Фишка в том, что внутри ReactionError( METHOD_DO );
все возможные программные ошибки можно оформить таким образом, что их обработка не войдёт в релиз.

Добавлено через 9 минут
при таком подходе "подъем" ошибки начинается с глубины. То есть, отказал самый низкоуровневый модуль, от него начинается цепная реация - более верхие модули фиксируют сбой, и в соответствии со своими обработчиками ошибок принимают решения. Если сами не могут исправить проблему, передают её на уровень выше.

Чем выше уровень, тем ниже вероятность, что сбой удастся устранить.

В отдельных ситуациях, на тестах, я наблюдал как пищали классы один за другим по цепочке: ошибка!" "ошибка!"

/резюмируя: Информация об ошибке идет снизу вверх, а не с верха вниз.

Вернуться к обсуждению:
Обработка ошибок C++
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.10.2011, 18:54
Готовые ответы и решения:

Обработка ошибок
Программа выводит информацию о дате рождения. Есть класс Date и унаследованный от него Birthday. ...

обработка ошибок
Есть класс треугольника, нужно, чтобы при вводе в конструктор нулей или минусовых значений вместо...

Обработка ошибок
Где почитать обработку ошибок при работе с текстовыми и бинарными файлами(считывание и запись),не в...

Обработка ошибок
while (1) { sh *newelem; newelem=new sh; cout&lt;&lt;&quot;Write number of the car&quot;&lt;&lt;&quot;\n&quot;;...

1
31.10.2011, 18:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.10.2011, 18:54
Помогаю со студенческими работами здесь

Обработка ошибок
void error(string s1, string s2) { throw runtime_error(s1 + s2); } int main() {...

Обработка ошибок (исключений)
Всем привет. Делаю обработку исключений и не много не допонимаю как это работает. Во первых...

Обработка ошибок ввода
Доброго времени суток. Имеется код который я написал для обработки ошибок ввода: #include...

Обработка ошибок ввода
Как решить? Можете помочь 9 вариант Прочитайте правила: Правила форума Пункт 5.18: Запрещено...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru