Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.01.2011, 01:52   #11
like-nix
Форумчанин
 
Регистрация: 09.11.2009
Сообщений: 104
По умолчанию

2Dayman если Вы кодите на Qt предлагаю использовать сигналы и слоты для обработки ошибок.
like-nix вне форума Ответить с цитированием
Старый 22.01.2011, 02:29   #12
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

С последним не соглашусь. Вряд ли так вообще где-нибудь делают. Да и, как автор уже говорил, в ядре программы он Qt не использует.
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su
Obey-Kun вне форума Ответить с цитированием
Старый 22.01.2011, 02:49   #13
like-nix
Форумчанин
 
Регистрация: 09.11.2009
Сообщений: 104
По умолчанию

Я так делаю и почти в каждом примере из официальной документации так сделано =)
like-nix вне форума Ответить с цитированием
Старый 22.01.2011, 03:00   #14
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

Можно ссылку? Я на такое не натыкался.
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su
Obey-Kun вне форума Ответить с цитированием
Старый 22.01.2011, 03:09   #15
like-nix
Форумчанин
 
Регистрация: 09.11.2009
Сообщений: 104
По умолчанию

Вот например обратите внимание на сигнал error
http://doc.qt.nokia.com/latest/netwo...uneclient.html
like-nix вне форума Ответить с цитированием
Старый 22.01.2011, 03:14   #16
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

Там происходит только отображение ошибок, а нужна их обработка.
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su
Obey-Kun вне форума Ответить с цитированием
Старый 22.01.2011, 03:18   #17
like-nix
Форумчанин
 
Регистрация: 09.11.2009
Сообщений: 104
По умолчанию

Ну в чем проблема сделать обработку то? Лучше тогда скажите что должна делать обработка

из слота можно еще кучу сигналов разных навызывать

Последний раз редактировалось Stilet; 22.01.2011 в 14:18.
like-nix вне форума Ответить с цитированием
Старый 22.01.2011, 03:26   #18
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

Может, ты и прав. Возможно, если и ядро, и гуй на Qt, то можно применять сигнально-слотовую схему.
Но если планируется делать несколько гуёв, то это уже не прокатит.
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su

Последний раз редактировалось Obey-Kun; 22.01.2011 в 03:29.
Obey-Kun вне форума Ответить с цитированием
Старый 22.01.2011, 18:44   #19
Dayman
Форумчанин
 
Аватар для Dayman
 
Регистрация: 12.01.2011
Сообщений: 186
По умолчанию

Цитата:
Сообщение от Obey-Kun Посмотреть сообщение
в ядре программы он Qt не использует.
Использую, но GUI-oriented там ничего нету. В основном всякие QFile, QDir, XML парсеры, HTTP client и т.п.

В общем, думаю, будет по enum'у для каждого класса с кодами + коды самих классов. Последнее надо для возврата кодов в GUI, т.к. значения enum в разных классах могут быть одинаковыми, а следить за тем, чтобы значения не пересекались для разных классов может быть весьма проблематично.
Без некоторой избыточности, боюсь, не обойтись. Надо будет дублировать enum'ы QIODevice, например, в классах модуля File I/O.
Где хранить строки-пояснения пока не знаю. Для них все равно надо делать проверку выхода за пределы массива, так что возможно лучше убрать их в какой-то спецкласс, который будет возвращать указатель на нужную строку по коду ошибки и коду класса.
В ядре же будем хранить код последней ошибки и класса и указатель на строку.
Lingua c++ non penis caninus est.
Dayman вне форума Ответить с цитированием
Старый 22.01.2011, 18:50   #20
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

Короче, в той теме написали, что:
1) Коды ошибок это ужасно
2) Для этого всегда используют эксепшны. Обычно этого достаточно. Надо перегружать std::exception. Читай: http://www.boost.org/community/error_handling.html
3) Ещё можно использовать шину сообщений. Это сложнее в понимании, но удобней в использовании. Тут уже надо гораздо больше читать: http://lib.ololo.cc/b/192396/read#t62
4) Ещё можно использовать 2+3.
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su
Obey-Kun вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка ошибок kardinal94 Общие вопросы Delphi 2 21.11.2010 20:23
Обработка ошибок Liones БД в Delphi 12 04.12.2008 07:22
Обработка ошибок Ivanich JavaScript, Ajax 1 24.04.2008 22:49
Обработка ошибок в Delphi 7 Наташкин БД в Delphi 3 21.12.2007 22:07
Обработка ошибок. Serviceprofi Помощь студентам 7 19.11.2007 15:12