Qt异常处理 - 尝试catch

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt异常处理 - 尝试catch相关的知识,希望对你有一定的参考价值。

我使用qt,我有一个gui和几个线程的大项目。

我想添加异常处理。我用谷歌搜索,没有找到任何教程或一些相关的答案。

在一些网站我读到qt不支持try catch。

qt支持尝试捕获吗?还是一些错误处理?如果是的话,有人可以给出一些指导或教程吗?

保护你。

答案

您不能通过信号槽调用抛出异常。允许在Qt应用程序中使用异常执行的所有其他操作。

http://doc.qt.io/qt-5/exceptionsafety.html#signals-and-slots

从Qt的信号槽连接机制调用的槽中抛出异常被认为是未定义的行为,除非它在槽内处理。

class MyClass : public QObject
{
    Q_OBJECT
public slots:
    void mySlot()
    {
        throw std::logic_error(""); // Undefined behavior when invoked by a signal
    }
};

以上是关于Qt异常处理 - 尝试catch的主要内容,如果未能解决你的问题,请参考以下文章

Java异常处理机制

java异常 throw和try-catch的关系

如何在Qt中捕获异常?

qt中的全局try and catch块

再学try-catch

JAVA学习第十九课(java程序的异常处理 )