在QT中,可以通过设置异常处理程序来防止在报错时程序崩溃。以下是一些示例代码:

  1. 使用QCoreApplication::setUnhandledExceptionFilter()设置异常处理程序:
#include <QtCore/QCoreApplication>
#include <QtCore/QDebug>

int exceptionFilter(void* context)
{
    qDebug() << "Exception caught!";
    return 1;
}

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

    // 设置异常处理程序
    QCoreApplication::setUnhandledExceptionFilter(exceptionFilter);

    // 抛出异常
    throw "Exception";

    return a.exec();
}
  1. 使用try-catch语句捕获异常:
#include <QtCore/QCoreApplication>
#include <QtCore/QDebug>

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

    try {
        // 抛出异常
        throw "Exception";
    } catch (...) {
        qDebug() << "Exception caught!";
    }

    return a.exec();
}

无论哪种方法,当程序抛出异常时,都会执行异常处理程序或try-catch语句中的代码,而不会导致程序崩溃

QT用C++防止在报错的时候崩溃

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

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