Класс QUnhandledException
Класс QUnhandledException представляет собой необработанное исключение в потоке обработки Qt Concurrent. Подробнее...
| Заголовок: | #include <QUnhandledException> |
| CMake: | find_package(Qt6 COMPONENTS Core REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
| С момента: | Qt 5.0 |
| Наследует: | QException |
Открытые функции
| QUnhandledException(const QUnhandledException &other) | |
| QUnhandledException(QUnhandledException &&other) | |
| QUnhandledException(std::exception_ptr exception = nullptr) | |
| QUnhandledException & | operator=(const QUnhandledException &other) |
| std::exception_ptr | exception() const |
| void | swap(QUnhandledException &other) |
Подробное описание
Если поток обработки выбрасывает исключение, которое не является подклассом QException, функции Qt Concurrent выбросят QUnhandledException в стороне потока получателя. Информация об фактическом исключении, которое было выброшено, будет сохранена в классе QUnhandledException и может быть получена с помощью метода exception(). Например, вы можете обработать исключение, содержащееся в QUnhandledException следующим образом:
try {
auto f = QtConcurrent::run([] { throw MyException {}; });
// ...
} catch (const QUnhandledException &e) {
try {
if (e.exception())
std::rethrow_exception(e.exception());
} catch (const MyException &ex) {
// Process 'ex'
}
} Наследование от этого класса не поддерживается.
Документация по членам-функциям
QUnhandledException::QUnhandledException(const QUnhandledException &other)
Создаёт объект QUnhandledException как копию other.
QUnhandledException::QUnhandledException(QUnhandledException &&other)
Перемещающее создание QUnhandledException, делая его указывающим на тот же объект, на который указывало other.
[since 6.0] QUnhandledException::QUnhandledException(std::exception_ptr exception = nullptr)
Создаёт новый объект QUnhandledException. Сохраняет указатель на фактический объект исключения, если exception передаётся.
Эта функция была введена в Qt 6.0.
См. также exception().
QUnhandledException &QUnhandledException::operator=(const QUnhandledException &other)
Присваивает other этому объекту QUnhandledException и возвращает ссылку на этот объект QUnhandledException.
[since 6.0] std::exception_ptr QUnhandledException::exception() const
Возвращает указатель на фактическое исключение, которое было сохранено в этом QUnhandledException. Возвращает null указатель, если он не указывает на объект исключения.
Эта функция была введена в Qt 6.0.
[since 6.0] void QUnhandledException::swap(QUnhandledException &other)
Меняет местами этот QUnhandledException с other. Эта функция очень быстрая и никогда не терпит неудачу.
Эта функция была введена в Qt 6.0.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.0/qunhandledexception.html