QUnhandledException Class

QUnhandledException クラスは、Qt Concurrent ワーカースレッドにおける未処理の例外を表します。詳細...

Header: #include <QUnhandledException>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
Inherits: QException

パブリック関数

(since 6.0) QUnhandledException(std::__exception_ptr::exception_ptr exception = nullptr)
QUnhandledException(const QUnhandledException &other)
QUnhandledException(QUnhandledException &&other)
(since 6.0) std::__exception_ptr::exception_ptr exception() const
(since 6.0) void swap(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)

other のコピーとして QUnhandledException オブジェクトを構築します。

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

Move - QUnhandledException を構築し、other が指していたのと同じオブジェクトを指すようにします。

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

このQUnhandledException に保存されている実際の例外へのポインタを返します。例外オブジェクトを指していない場合は、null ポインタを返します。

この関数は Qt 6.0 で導入されました。

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

このQUnhandledExceptionother と入れ替えます。この関数は非常に高速で、失敗することはありません。

この関数は Qt 6.0 で導入されました。

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

このQUnhandledException オブジェクトにother を割り当て、このQUnhandledException オブジェクトへの参照を返します。

本書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。