Russian Qt Forum

Qt => Общие вопросы => Тема начата: PavelVX от Июль 08, 2011, 10:06



Название: Как отлавливать Exceptions?
Отправлено: PavelVX от Июль 08, 2011, 10:06
    QString strSQL;
    QSqlQuery q = QSqlQuery();

    strSQL = QString("select");

    try{
       q.exec(strSQL);
    }
    catch (...)
    {
        QMessageBox::critical(this, tr("Error!"),
                                                   tr("Error in check!"),
                                                   QMessageBox::Ok);
    }
    if (!q.isActive())
    {
      QMessageBox::warning(0, "Error in Query",
                      q.lastError().text(),
                      QMessageBox::Yes);
    }
Почему данный try - catch не перехватывает ошибку? Через поисковик нашел инфу, что qt впринципе не особо дружит с исключениями. Через q.isActive() и q.lastError().text() ошибку можно вытащить, но хотелось на всю функцию повесть try а не кусочничать. :(


Название: Re: Как отлавливать Exceptions?
Отправлено: Пантер от Июль 08, 2011, 10:09
QSqlQuery не кидает исключений. Как, впрочем, и все остальное в Qt. Смирись.


Название: Re: Как отлавливать Exceptions?
Отправлено: LisandreL от Июль 08, 2011, 10:22
Код
C++ (Qt)
 
   if ( !q.exec(strSQL) )
   {
       QMessageBox::critical(this, tr("Error!"),
                                                  tr("Error in check!"),
                                                  QMessageBox::Ok);
   }
Намного элегантней.


Название: Re: Как отлавливать Exceptions?
Отправлено: ритт от Июль 08, 2011, 14:02
> QSqlQuery q = QSqlQuery();
О_о


Название: Re: Как отлавливать Exceptions?
Отправлено: zenden от Июль 08, 2011, 14:06
Дотнетчик детектед


Название: Re: Как отлавливать Exceptions?
Отправлено: navrocky от Июль 08, 2011, 15:58
Я бы кидал исключения вместо месседж боксов, а потом их перехватывал в QApplication::notify и показывал бы оттуда диалог...


Название: Re: Как отлавливать Exceptions?
Отправлено: PavelVX от Июль 13, 2011, 06:40
Константин
> QSqlQuery q = QSqlQuery();
О_о

Изначально брал из примера, да так и оставил.  чем это плохо?

Автор: zenden
Цитата
Дотнетчик детектед

Это видимо был оскорбительный выпад :). Но Qt после МС Аксеса, в плане мордашки для баз данных, это просто жалкое поделие :(.


Название: Re: Как отлавливать Exceptions?
Отправлено: Пантер от Июль 13, 2011, 07:14
Константин
> QSqlQuery q = QSqlQuery();
О_о

Изначально брал из примера, да так и оставил.  чем это плохо?
Двойная работа.

Автор: zenden
Цитата
Дотнетчик детектед

Это видимо был оскорбительный выпад :). Но Qt после МС Аксеса, в плане мордашки для баз данных, это просто жалкое поделие :(.
Толсто. Аксес - УГ.


Название: Re: Как отлавливать Exceptions?
Отправлено: lit-uriy от Июль 13, 2011, 07:53
нашли чё сравнивать, Qt - библиотека классов, и Access - программа.


Название: Re: Как отлавливать Exceptions?
Отправлено: Пантер от Июль 13, 2011, 08:57
Access - не программа, а СУБД с поддержкой программирования гуя на VBScript.


Название: Re: Как отлавливать Exceptions?
Отправлено: carpovpv от Июль 21, 2011, 00:20
Программирование приложений баз данных в Qt реализовано очень стильно и четко. Хотя и требуется немного перестроится и научиться писать приложения, которые будут гораздо лучше MS Access. И мордашка будет симпотичнее))).


Название: Re: Как отлавливать Exceptions?
Отправлено: shirushizo от Июль 21, 2011, 09:20
Вспоминая псевдо-sql, используемый в аксесе, я просто потом обливаюсь  :o
Аксес проще, потому что сильно ограничен в возможностях. Когда разберитесь в программировании на С/С++ с использованием Кьют, сами же посмеетесь на своими словами.


Название: Re: Как отлавливать Exceptions?
Отправлено: PavelVX от Июль 22, 2011, 05:30
Не путайте большое и зеленое. Мы используем аксес только для мордашек. Все что можно из SQL перенесли на сервак.
В Qt тоже есть корявости, так что спор бесполезен.


Название: Re: Как отлавливать Exceptions?
Отправлено: Sancho_s_rancho от Июль 22, 2011, 08:43
Не путайте большое и зеленое. Мы используем аксес только для мордашек. Все что можно из SQL перенесли на сервак.
В Qt тоже есть корявости, так что спор бесполезен.
Это точно. К чему слова, когда есть руки. Публика требует мордобоя.


Название: Re: Как отлавливать Exceptions?
Отправлено: Пантер от Июль 22, 2011, 09:09
За попкорном и пивом уже можно бежать?


Название: Re: Как отлавливать Exceptions?
Отправлено: PavelVX от Июль 22, 2011, 11:04
дак сегодня же пятница ...
Не знаю у кого как, а в Новосибирске хорошая погода, так что не "можно", а "нужно" бежать, но не за попкорном, а за мясом :), поскольку перед любым побоищем нужно хорошо подкрепиться ... :)