Movatterモバイル変換


[0]ホーム

URL:


We bake cookies in your browser for a better experience. Using this site means that you consent.Read More

Menu

Qt Documentation

Exception Class

(QtConcurrent::Exception)

The Exception class provides a base class for exceptions that can transferred across threads.More...

Header:#include <Exception>
Since: Qt 4.4
Inherits:
Inherited By:

QtConcurrent::UnhandledException

Public Functions

virtual Exception *clone() const
virtual voidraise() const

Detailed Description

The Exception class provides a base class for exceptions that can transferred across threads.

Qt Concurrent supports throwing and catching exceptions across thread boundaries, provided that the exception inherit fromQtConcurrent::Exception and implement two helper functions:

class MyException :publicQtConcurrent::Exception{public:void raise()const {throw*this; }    Exception*clone()const {returnnew MyException(*this); }};

QtConcurrent::Exception 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 ofQtConcurrent::Exception, the Qt Concurrent functions will throw aQtConcurrent::UnhandledException in the receiver thread.

When usingQFuture, transferred exceptions will be thrown when calling the following functions:

Member Function Documentation

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

In yourQtConcurrent::Exception subclass, reimplement clone() like this:

MyException*MyException::clone()const {returnnew MyException(*this); }

[virtual]void Exception::raise() const

In yourQtConcurrent::Exception subclass, reimplement raise() like this:

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

© 2016 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of theGNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.


[8]ページ先頭

©2009-2025 Movatter.jp