QUnhandledException 类

QUnhandledException 类表示 Qt 并发工作线程中的未处理异常。 更多...

头文件 #include <QUnhandledException>
CMakefind_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmakeQT += core
继承 QException

公开函数

(自 6.0) QUnhandledException(std::__exception_ptr::exception_ptr exception = nullptr)
QUnhandledException(const QUnhandledException &other)
QUnhandledException(QUnhandledException &&other)
(since 6.0) std::__exception_ptr::exception_ptrexception() const
(since 6.0) voidswap(QUnhandledException &other)
QUnhandledException &operator=(const QUnhandledException &other)

详细信息

如果一个工作线程抛出了一个不是 QException 子类的异常,则 Qt Concurrent 函数将在接收线程侧抛出 QUnhandledException。已抛出的实际异常信息将保存在 QUnhandledException 类中,可以使用 exception() 方法获取。例如,您可以这样处理 QUnhandledException 维护的异常

try {
    auto f = QtConcurrent::run([] { throw MyException {}; });
    // ...
} catch (const QUnhandledException &e) {
    try {
        if (e.exception())
            std::rethrow_exception(e.exception());
    } catch (const MyException &ex) {
        // Process 'ex'
    }
}

不支持从此类继承。

成员函数文档

[noexcept, since 6.0] QUnhandledException::QUnhandledException(std::__exception_ptr::exception_ptr exception = nullptr)

构造一个 QUnhandledException 对象。如果传递了 exception,则保存实际异常对象的指针。

此功能自 Qt 6.0 开始引入。

另请参阅exception().

[noexcept] QUnhandledException::QUnhandledException(const QUnhandledException &other)

构造一个 QUnhandledException 对象,作为 other 的副本。

[noexcept] QUnhandledException::QUnhandledException(QUnhandledException &&other)

Move-constructs 创建一个 QUnhandledException 对象,使其指向与其他相同的对象。

[since 6.0] std::__exception_ptr::exception_ptr QUnhandledException::exception() const

返回指向在当前 QUnhandledException 中保存的实际异常的指针。如果没有指向异常对象,则返回空指针。

此功能自 Qt 6.0 开始引入。

[noexcept, since 6.0] void QUnhandledException::swap(QUnhandledException &other)

交换此 QUnhandledExceptionother。此函数非常快速且永远不会失败。

此功能自 Qt 6.0 开始引入。

[noexcept] QUnhandledException &QUnhandledException::operator=(const QUnhandledException &other)

other 赋值给此 QUnhandledException 对象,并返回对此 QUnhandledException 对象的引用。

© 2024 Qt 公司有限公司。此处包含的文档贡献是各自所有者的版权。所提供的文档根据自由软件基金会发布的 GNU 自由文档许可证版本 1.3 的条款获得许可。Qt 及相关商标是芬兰 Qt 公司及/或在其他国家/地区的商标。所有其他商标均为各自所有者财产。