嵌入式AI学习打卡 08 现代C++ 异常

44 阅读1分钟

适合谁看:资深的嵌入式系统底层专家。技能栈(C、SoC、Bootloader、驱动、系统移植、DSP优化、Cache调优、功耗分析)是芯片设计的核心和基础,具备从硬件(SoC)底层固件(ROM Bootloader)再到操作系统层(驱动、RTOS)的全栈知识和实战经验,希望向嵌入式场景的AI部署方向拓展,寻求新的发展空间。


现代C++强调将异常(exceptions)而非错误代码(error codes)作为报告和处理错误情况的最佳方式。

从技术层面看,传统上通过返回值表示错误状态,而异常机制通过throw抛出异常,以try/catch的形式捕获处理。

异常机制能够提供更清晰的错误传播路径,分离正常逻辑与错误处理,避免函数返回值被错误状态污染,代码更加整洁。异常能够自动向上传播,无需每层检查返回的错误码。异常类型任意性,表达能力更强。未捕获的异常会总之程序,避免错误被忽略。

示例:

// 传统错误码方式(易被忽略)
int result = openFile("data.txt");
if (result != 0) {
    // 需要手动检查并处理
}

// 现代异常方式(强制处理)
try {
    openFile("data.txt"); // 失败时直接抛出异常
} catch (const FileException& e) {
    // 集中错误处理
}