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

Как вернуть из функции ошибку и её расшифровку? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Три камня преткновения http://www.cyberforum.ru/cpp-beginners/thread934948.html
Доброго времени суток форумчане! Углубляясь в изучение этого интересного ЯП постоянно генерируются вопросы, ответы на которые не смог нагуглить, но их понимание необходимо для дальнейшего изучения, поэтому хочу обратиться к более профессиональным программистам, которые помогут мне разобраться в следующем: 1) В википедии прочитал следующее => "Существует множество реализаций языка С++, как...
C++ Ошибка в несовместимости типов Отрывок : int main() { char choice; list(); for(;;) { choice = menu();//Показывает ошибку " Unit1.cpp(23): E2109 Not an allowed type" switch (choice){ case 'd' : display(); http://www.cyberforum.ru/cpp-beginners/thread934938.html
C++ Конструктор и деструктор
Всем привет.Вообщем передо мной стоит такая задача-Отобразить на экране время работы программы, используя конструктор и деструктор.В конструкторе используем ф-ию clock а в диструкторе вывести когда отработала программа
Существует ли эквивалент функции toupper() для типа string ? C++
Существует ли эквивалент функции toupper(), предназначенной для типа char, что - нибудь подобное для типа string ?
C++ чтение из файла и добавление в контейнер http://www.cyberforum.ru/cpp-beginners/thread934912.html
std::ofstream out; out.open("FilegRANDCHILED.dat", std::ios::binary | std::ios::trunc); if(!out) { MessageBox(hWnd, L"File no create!!!", L"Error", MB_ICONERROR | MB_OK); break; } else { MessageBox(hWnd, L"Begin write file!!!", L"OK", MB_ICONINFORMATION | MB_OK);
C++ Удаление элементов из vector; bind или not1 Как правильно забиндить, - сделать аналог, как через лямбду. Или же тут больше подойдет использование not1 (или not2). Не могу сам разобраться. Вот код:#include <iostream> #include <string> #include <vector> #include <algorithm> #include <functional> class A { std::string m_ext; public: подробнее

Показать сообщение отдельно
noeine
0 / 0 / 0
Регистрация: 31.07.2013
Сообщений: 45
07.08.2013, 21:46  [ТС]     Как вернуть из функции ошибку и её расшифровку?
До стуктур еще не дорос, первые дни только изучаю С++.
Чтобы если возвращать код ошибки, то после вызова функции, придется еще добавлять какой-то обработчик ошибок, при большом количестве вызовов в разных местах, всюду придется совать обработчик. Если обработчик поместить в отдельную функцию, то опять же придется иметь по 1 функции с обработчиком на каждую уникальную функцию.
Поразмыслив и поковыряв самоучитель я пришел к выводу что хоть и кривой, но всё же реализацией того что я хочу сделать будет примерно следующее:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
int test1(int testnum, string *error) {
    if (!testnum) {
        *error = "Input must'nt be a zero";
    }else if (testnum > 10 ) {
        *error = "Input number is too much";
    }else{
        return 1;
    }
    return 0;
}
 
int main() {
    string error = "default";
    int testnum = 5;
    int var = test1(testnum, &error);
    if (!var) {
        cout << error << endl;
    }else{
        cout << testnum << " was a good choice" << endl;
    }
    system("pause");
    return 0;
}
Таким образом все ошибки описываются сразу же в вызываемой функции и при желании, после вызова функции, в случае возврата false (ну или любого другого вас не устраивающего, на который описана ошибка), можно узнать, а что собственно пошло не так.
 
Текущее время: 20:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru