|  | Home · All Classes · Main Classes · Grouped Classes · Modules · Functions |

# Exception Class Reference
(QtConcurrent::Exception)
[QtCore module]

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

     #include <QtConcurrent>

Inherited by QtConcurrent::UnhandledException.

This class was introduced in Qt 4.4.

- List of all members, including inherited members

### Public Functions

- virtual Exception * clone () const
- virtual void raise () 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 from QtConcurrent::Exception and implement two helper functions:

         class MyException : public QtConcurrent::Exception
         {
         public:
             void raise() const { throw *this; }
             Exception *clone() const { return new 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 of QtConcurrent::Exception,
         the Qt Concurrent functions will throw a QtConcurrent::UnhandledException
         on the receiver thread side.

## Member Function Documentation

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

In your QtConcurrent::Exception subclass, reimplement clone() like this:

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

### void Exception::raise () const `[virtual]`

In your QtConcurrent::Exception subclass, reimplement raise() like this:

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