QT新手日记026

这一节,说说错误捕捉和处理

在QT世界里,它是不希望有错误出现,所以,他不太会主动的向你抛出异常,更多时时间会以isError()、getLastError等方式方法取得错误信息,当然,它还是向程序员提供了宏引用QT_TRY{......}QT_CATCH{......}来捕捉异常,但不一定成功,特别在不同平台,它不一定成功,还有C++带来的try{......}catch{......}也可以正常工作,但有一点就是它不一定成功。

要使用捕捉错误信息,

在pro文件里要加入异常处理的模块,不然默认是禁用异常的。

QT +=...... exception

需要引用

#include<QException>

try {

throwError();//抛出异常

} catch (QException &e) {

qDebug() << "Caught Exception!";

}

当然,为了更好的自定义异常行为。可以考虑继承QException。

cpp 复制代码
class MyException : public QException {
public:
    explicit MyException(const QString& message) : m_message(message) {}

    void raise() const override { throw *this; }
    QException* clone() const override { return new MyException(*this); }

    const QString& message() const { return m_message; }

private:
    QString m_message;
};

但是在指针世界里,很难捕捉到异常,或者说,很难说是有异常,只要系统没有禁用的内存,都能写能访问,可以读写就不算异常,只有对于程序员的程序业务逻辑来说是异常。所以说,编程人要谨慎、周全、细致的写着自己的程序。尽可能不要出现崩盘的事情发生,在设计初期,对每个模块,每个方法,每个环节,都做好黑白盒测试。

相关推荐
choke2333 小时前
[特殊字符] Python异常处理
开发语言·python
云中飞鸿3 小时前
linux中qt安装
开发语言·qt
少控科技4 小时前
QT第6个程序 - 网页内容摘取
开发语言·qt
darkb1rd4 小时前
八、PHP SAPI与运行环境差异
开发语言·网络安全·php·webshell
历程里程碑4 小时前
Linux20 : IO
linux·c语言·开发语言·数据结构·c++·算法
郝学胜-神的一滴4 小时前
深入浅出:使用Linux系统函数构建高性能TCP服务器
linux·服务器·开发语言·网络·c++·tcp/ip·程序人生
承渊政道4 小时前
Linux系统学习【Linux系统的进度条实现、版本控制器git和调试器gdb介绍】
linux·开发语言·笔记·git·学习·gitee
JQLvopkk4 小时前
C# 轻量级工业温湿度监控系统(含数据库与源码)
开发语言·数据库·c#
玄同7654 小时前
从 0 到 1:用 Python 开发 MCP 工具,让 AI 智能体拥有 “超能力”
开发语言·人工智能·python·agent·ai编程·mcp·trae
czy87874754 小时前
深入了解 C++ 中的 `std::bind` 函数
开发语言·c++