QException Class
La classe `QException` sert de classe de base aux exceptions pouvant être transmises d'un thread à l'autre. En savoir plus...
| En-tête : | #include <QException> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake : | QT += core |
| Hérité par : |
Fonctions publiques
| QException() | |
| QException(const QException &other) | |
| virtual | ~QException() |
| virtual QException * | clone() const |
| virtual void | raise() const |
| QException & | operator=(const QException &other) |
Description détaillée
Qt Concurrent prend en charge le lancement et la gestion d’exceptions entre les threads, à condition que l’exception hérite de QException et implémente deux fonctions d’aide :
class MyException : public QException
{
public:
void raise() const override { throw *this; }
MyException *clone() const override { return new MyException(*this); }
};Les sous-classes de QException doivent être levées par valeur et interceptées par référence :
try {
QtConcurrent::blockingMap(list, throwFunction); // throwFunction throws MyException
} catch (MyException &e) {
// handle exception
}Si vous lancez une exception qui n’est pas une sous-classe de QException, les Qt Concurrent fonctions lanceront une exception « QUnhandledException » dans le thread récepteur.
Lors de l’utilisation d’ QFuture, les exceptions transférées seront levées lors de l’appel des fonctions suivantes :
Documentation des fonctions membres
[noexcept default] QException::QException()
Crée un objet QException.
[constexpr noexcept default] QException::QException(const QException &other)
Crée une copie de other.
Remarque : soyez prudent lorsque vous utilisez cette fonction, car vous risquez de procéder à un découpage.
Voir également clone().
[virtual noexcept] QException::~QException()
Supprime cet objet « QException ».
[virtual] QException *QException::clone() const
Dans votre sous-classe ` QException `, réimplémentez la méthode `clone()` comme suit :
MyException *MyException::clone() const { return new MyException(*this); }[virtual] void QException::raise() const
Dans votre sous-classe ` QException `, réimplémentez la méthode `raise()` comme suit :
void MyException::raise() const { throw *this; }[noexcept default] QException &QException::operator=(const QException &other)
Cette fonction attribue par copie l'other e à cet objet.
Remarque : soyez prudent lorsque vous utilisez cette fonction, car vous risquez de provoquer un « slicing ».
© 2026 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 the GNU 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.