在 QT 中,可以使用 try-catch 语句捕获所有类型的异常。以下代码演示了如何捕获全部异常并记录异常信息:

#include <QDebug>
#include <QCoreApplication>
#include <iostream>
#include <exception>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    try {
        // your code here
    } catch (std::exception& e) {
        qCritical() << 'Exception caught: ' << e.what();
    } catch (...) {
        qCritical() << 'Unknown exception caught.';
    }

    return a.exec();
}

try 块中编写你的代码。如果发生异常,程序会进入 catch 块。第一个 catch 块捕获 std::exception 及其子类的异常,第二个 catch 块捕获其他类型的异常。在 catch 块中,使用 qCritical() 函数将异常信息输出到控制台。

代码解析:

  • #include <exception>:包含 std::exception 类定义的头文件,用于捕获标准 C++ 异常。
  • try...catch 语句:用于捕获异常,将可能引发异常的代码放在 try 块中,并在 catch 块中处理异常。
  • std::exception& e:捕获 std::exception 及其子类的异常,e 是一个对异常对象的引用。
  • e.what():获取异常描述字符串。
  • qCritical():将异常信息输出到控制台。
  • ...:捕获所有类型的异常,包括非 std::exception 类别的异常。

通过这种方式,你可以捕获所有类型的异常,并根据异常类型进行不同的处理。这有助于提高程序的健壮性和稳定性,使程序能够在异常情况下正常运行并提供有用的错误信息。

QT 全局异常捕获:完整示例和代码解析

原文地址: https://www.cveoy.top/t/topic/nu7v 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录