QException 类为可以跨线程传输的异常提供基类。 更多...
| 头: | #include <QException> | 
| qmake: | QT += core | 
| Since: | Qt 5.0 | 
| 继承者: | 
该类在 Qt 5.0 引入。
| virtual QException * | clone () const | 
| virtual void | raise () const | 
Qt Concurrent supports throwing and catching exceptions across thread boundaries, provided that the exception inherit from QException and implement 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 functions will throw a QUnhandledException in the receiver thread.
当使用 QFuture , transferred exceptions will be thrown when calling the following functions:
[虚拟]
						
						
							
								QException
							
						
						*QException::
						
							clone
						
						() const
						
					在 QException 子类,重实现 clone() 像这样:
MyException *MyException::clone() const { return new MyException(*this); }
[虚拟]
						
						
							void
						
						QException::
						
							raise
						
						() const
						
					在 QException 子类,重实现 raise() 像这样:
void MyException::raise() const { throw *this; }