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

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

Вернуться   Форум программистов > C/C++ программирование > Qt и кроссплатформенное программирование С/С++
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.04.2011, 20:01   #1
iukash
учу английский...
Форумчанин
 
Аватар для iukash
 
Регистрация: 04.04.2009
Сообщений: 480
По умолчанию Исключения в Qt

В общем следующий вопрос, как работать с исключениями. Делаю так

Цитата:
QFile *file_open;
try
{
file_open->open(QFile::ReadOnly | QFile::Text);
}
catch(...)
{
}
Только указатель определяется глобально а объект создается в другой функции, но если он не создался то происходит исключение. Но суть не именно конкретно этого примера а вообще работы с исключениями на примере этой ситуации.
В общем при таком коде все равно исключение и оно не попадает в catch! Что делать?
"Мы можем что-то изменить и своими силами..."
"Начнешь с себя, примером ближнему поможешь..."
iukash вне форума Ответить с цитированием
Старый 15.04.2011, 20:49   #2
xwicked
Участник клуба
 
Аватар для xwicked
 
Регистрация: 21.03.2010
Сообщений: 1,508
Лампочка

Цитата:
Сообщение от iukash Посмотреть сообщение
В общем следующий вопрос, как работать с исключениями. Делаю так


Только указатель определяется глобально а объект создается в другой функции, но если он не создался то происходит исключение. Но суть не именно конкретно этого примера а вообще работы с исключениями на примере этой ситуации.
В общем при таком коде все равно исключение и оно не попадает в catch! Что делать?
Хотел сделать также - тоже ничего не получилось. Обработал только несколько исключений и так оставил. Попробую ещё раз, если получится, отпишусь.
Google - лучший помощник программиста.
---
моя лаборатория | мой FaceBook
xwicked вне форума Ответить с цитированием
Старый 16.04.2011, 12:16   #3
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

Nokia не рекомендует при работе с Qt использовать исключения.
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su

Последний раз редактировалось Obey-Kun; 16.04.2011 в 12:55.
Obey-Kun вне форума Ответить с цитированием
Старый 16.04.2011, 15:23   #4
xwicked
Участник клуба
 
Аватар для xwicked
 
Регистрация: 21.03.2010
Сообщений: 1,508
Лампочка

iukash, при работе с файлами ошибки у меня вообще редко возникали - попробовал в другом случае использовать: читал с файла не своего формата данные:
Код:
sfile >> IntCount;
TableKlestCrossword->setColumnCount(IntCount);
IntCount, при этом, получался больше типа int и происходило исключение. Перехватывал
Код:
catch(...)
- получилось.
А вообще я использую класс для ошибок:
Код:
if(!vShelkTestVar->db.open()) throw Error::DontOpenDataBase();
...
catch(Error::DontOpenDataBase)
    {
          QMessageBox::critical(0, tr("Detection error"), tr("Error at openning base of the tests!"));
          return;
    }
Проверил на линухе - в винде думаю, что тоже будет перехватывать. А другие платформы, как бы не нужны - поэтому можно принебречь советом Nokia, что исключения не все платформы поддерживают , если только Вы не собираетесь использовать Вашу программу на NetBSD в тостере
Google - лучший помощник программиста.
---
моя лаборатория | мой FaceBook
xwicked вне форума Ответить с цитированием
Старый 16.04.2011, 17:27   #5
iukash
учу английский...
Форумчанин
 
Аватар для iukash
 
Регистрация: 04.04.2009
Сообщений: 480
По умолчанию

Ну то что не рекомендует не удивительно, они же не ловятся! А вообще спасибо за ответы, теперь буду знать что Qt с исключениями не дружит!
"Мы можем что-то изменить и своими силами..."
"Начнешь с себя, примером ближнему поможешь..."
iukash вне форума Ответить с цитированием
Старый 16.04.2011, 18:33   #6
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

http://developer.qt.nokia.com/wiki/Coding_Conventions -- также не стоит использовать RTII (dynamic_cast)
Ну и вот полезный документ по стилю (отступам и пр) http://developer.qt.nokia.com/wiki/Qt_Coding_Style
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su
Obey-Kun вне форума Ответить с цитированием
Старый 16.04.2011, 18:54   #7
iukash
учу английский...
Форумчанин
 
Аватар для iukash
 
Регистрация: 04.04.2009
Сообщений: 480
По умолчанию

Цитата:
Сообщение от Obey-Kun Посмотреть сообщение
http://developer.qt.nokia.com/wiki/Coding_Conventions -- также не стоит использовать RTII (dynamic_cast)
Ну и вот полезный документ по стилю (отступам и пр) http://developer.qt.nokia.com/wiki/Qt_Coding_Style
Большое спасибо!
"Мы можем что-то изменить и своими силами..."
"Начнешь с себя, примером ближнему поможешь..."
iukash вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Исключения C++ Impuls1989 Помощь студентам 2 04.03.2011 00:51
Исключения в Visual C++ _Mixer_ Visual C++ 10 19.01.2011 23:12
Логарифм - Исключения[C++] ArniLand Общие вопросы C/C++ 2 04.05.2010 15:11
Исключения yurik1982 Фриланс 9 16.02.2010 00:34
Исключения Rifler Общие вопросы Delphi 5 12.11.2008 00:29