Qt笔记——程序异常结束几种常见情况

程序异常结束不会报错(即无语法错误),这种情况需要靠经验判断何处出错


情况一:

在private:或者public:中定义的变量未使用;

将其注释掉或者使用即可。


情况二:

资源文件载入错误

比如image.load("../image/image.png");未能正确读取,不会报错,但是会返回false,使用qDebug()调试可以看出来


情况三:

没有实例化!经常犯

比如在.h文件里写:

private:
    QLabel *serverNameLabel;
    QLineEdit *serverNameLineEdit;
    QLabel *portLabel;
    QLineEdit *portLineEdit;

.cpp文件里写了:

    serverNameLineEdit = new QLineEdit("Localhost");
    portLabel =new QLabel(QStringLiteral("端口:"));
    portLineEdit = new QLineEdit;
    QGridLayout *layout = new QGridLayout;
    layout->addWidget(serverNameLabel,0,0);
    layout->addWidget(serverNameLineEdit,0,1);
    layout->addWidget(portLabel,1,0);
    layout->addWidget(portLineEdit,1,1);

注意看,serverNameLabel这个对象忘记new 了,但是

layout->addWidget(serverNameLabel,0,0);

使用了,不会报语法错误!很难发现!

不是控件没有实例化,有可能会出现程序未响应的错误!所以一定要小心


情况四:

有逻辑上的错误,导致内存泄漏,数组越界等

这种比较难发现


以后再补充

你可能感兴趣的:(Qt开发,乱七八糟的bug)