QException 類

QException 類提供可以跨綫程轉移異常的基類。 更多...

頭: #include <QException>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
繼承者:

QUnhandledException

公共函數

QException ()
QException (const QException & other )
virtual ~QException ()
virtual QException * clone () const
virtual void raise () const
QException & operator= (const QException & other )

詳細描述

Qt Concurrent supports throwing and catching exceptions across thread boundaries, provided that the exception inherits from QException and implements two helper functions:

class MyException : public QException
{
public:
    void raise() const override { throw *this; }
    MyException *clone() const override { return new MyException(*this); }
};
					

QException subclasses must be thrown by value and caught by reference:

try  {
    QtConcurrent::blockingMap(list, throwFunction); // throwFunction throws MyException
} catch (MyException &e) {
    // handle exception
}
					

If you throw an exception that is not a subclass of QException, the Qt Concurrent functions will throw a QUnhandledException in the receiver thread.

當使用 QFuture , transferred exceptions will be thrown when calling the following functions:

成員函數文檔編製

[noexcept] QException:: QException ()

Constructs a QException object.

[constexpr noexcept] QException:: QException (const QException & other )

創建副本為 other .

注意: Be careful when using this function, as you risk slicing.

另請參閱 clone ().

[virtual noexcept] QException:: ~QException ()

銷毀此 QException 對象。

[virtual] QException *QException:: clone () const

QException 子類,重實現 clone() 像這樣:

MyException *MyException::clone() const { return new MyException(*this); }
				

[virtual] void QException:: raise () const

QException 子類,重實現 raise() 像這樣:

void MyException::raise() const { throw *this; }
				

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

Copy-assigns other over this object.

注意: Be careful when using this function, as you risk slicing.

內容

  1. 公共函數

  2. 詳細描述