QException Class
La classe QException fournit une classe de base pour les exceptions qui peuvent être transférées d'un thread à l'autre. Plus d'informations...
| En-tête : | #include <QException> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Core)target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake : | QT += core |
| Inherited By : |
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 permet de lancer et d'attraper des exceptions au-delà des limites des 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 lancées par valeur et capturé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 fonctions de QException lanceront un message d'erreur. Qt Concurrent Les fonctions QException lanceront un message QUnhandledException dans le thread récepteur.
Lors de l'utilisation de QFuture, des exceptions transférées seront lancées lors de l'appel des fonctions suivantes :
Documentation des fonctions membres
[noexcept] QException::QException()
Construit un objet QException.
[constexpr noexcept] QException::QException(const QException &other)
Crée une copie de other.
Note : Soyez prudent lorsque vous utilisez cette fonction, car vous risquez d'être coupé en tranches.
Voir aussi clone().
[virtual noexcept] QException::~QException()
Détruit cet objet QException.
[virtual] QException *QException::clone() const
Dans votre sous-classe QException, réimplémentez clone() comme suit :
MyException *MyException::clone() const { return new MyException(*this); }
[virtual] void QException::raise() const
Dans votre sous-classe QException, réimplémentez raise() comme suit :
void MyException::raise() const { throw *this; }
[noexcept] QException &QException::operator=(const QException &other)
Copie - attribue other à cet objet.
Remarque : soyez prudent lorsque vous utilisez cette fonction, car vous risquez de couper l'objet.
© 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.