错误处理
概述
识别和处理运行时错误对于开发健壮的应用程序非常重要. ESP-IDF 中可能存在多种运行时错误:
- 可恢复的错误:
- 函数通过返回值表示的错误(错误代码)
- 使用 throw 关键字抛出的 C++ 异常
- 不可恢复(严重)错误:
- 断言失败(使用断言宏和等效方法)和 abort() 调用.
- CPU 异常:access to protected regions of memory, illegal instruction(访问受保护的内存区域,非法指令)等.
- 系统级别检查:watchdog timeout, cache access error, stack overflow, stack smashing, heap corruption(监视程序超时,缓存访问错误,堆栈溢出,堆栈粉碎,堆损坏)等.
本指南介绍了与可恢复错误相关的 ESP-IDF 错误处理机制,并提供了一些常见的错误处理模式.
有关诊断不可恢复错误的说明,请参阅错误.
错误代码
大多数特定的 ESP-IDF 函数使用 esp_err_t
类型来返回错误代码. esp_err_t
是带符号的整数类型. ESP_OK
代码表示成功(无错误),定义为零.
各种 ESP-IDF 头文件使用预处理器定义来定义可能的错误代码. 通常这些定义以 ESP_ERR_
前缀开头. 通用错