首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >QApplication::通知未被调用

QApplication::通知未被调用
EN

Stack Overflow用户
提问于 2016-10-04 12:01:41
回答 1查看 117关注 0票数 0

我想在QApplication::QApplication例程中捕获未被察觉的异常,以便优雅地关闭。但是应用程序崩溃了

我在Windows上使用QT5.6,并使用了MIMW5.3.0 x64。

你知道我做错了什么吗?

代码语言:javascript
运行
复制
#include <QApplication>
#include <QObject>
#include <QtDebug>
#include <QTimer>

class TestApplication Q_DECL_FINAL : public QApplication
{

    Q_OBJECT

public:

    TestApplication(int &argc, char **argv) : QApplication(argc, argv) {}
    bool notify(QObject *receiver, QEvent *event) {

        try {
            return QApplication::notify(receiver, event);
        } catch(std::exception& e) {
            qCritical() << qPrintable(QString("Exception thrown: %1").arg(e.what()));
        }

        return false;

    }

};

#include "main.moc"

int main(int argc, char *argv[])
{

    TestApplication a(argc, argv);

    QTimer timer;
    timer.setSingleShot(true);

    QObject::connect(&timer, &QTimer::timeout, []() {
        throw 1;
    });

    timer.start(5000);

    return a.exec();

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-07 12:24:29

尝试使用实际的异常对象而不是int。比如“抛出std::exception()”。工作于QT5.7明威Win10。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39851777

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档