C

错误处理

Qt Quick Ultralite 库中发生的致命错误通过可以在应用程序代码中实现的 API 报告。该 API 可用于编写自定义日志消息或存储错误事件。该实现不能再与 GUI 交互,并应最终重新启动设备或执行类似操作。

警告:错误处理器不得返回,因为整个软件栈已经处于无效状态。

Qt Quick Ultralite 库提供了一个默认实现,当应用没有提供实现时使用。

默认错误处理器按以下格式将错误报告打印到 Qul::Platform::PlatformContext::consoleWrite

Qt for MCUs error: <errorRange>:<errorString>:<errorCode>, line: <lineNumber>, params: <param1>, <param2>, <param3>.
  • errorRange - 与错误相关的区域/模块。例如,CorePlatformCustom
  • errorString - 描述 错误代码 常量的字符串,但没有 QulError_ 前缀。在发布构建中将为空。
  • errorCode - QulError 的数值。
  • lineNumber - 错误发生的行号。
  • param1param2param3 - 提供有关错误额外信息的整数值。

默认处理器打印错误消息后暂停程序,并进入无限循环以保存回溯以供调试。

QulError 提供了 Qt Quick Ultralite 报告的误差代码列表。

注:一些误差代码仅在调试构建中可用。要启用全部误差检查,Qt Quick Ultralite Core 和 Platform 需要使用调试构建配置重新构建。

报告自定义错误

错误通过 Qul::PlatformInterface::error 报告。断言语句使用 QUL_ASSERT 完成,它在表达式求值为 false 的情况下调用 Qul::PlatformInterface::error

Qt Quick Ultralite 预留了 CorePlatform 范围的错误代码值。自定义错误代码从值 QulError_Custom + 1 开始。

enum CustomErrorCodes { CustomError_Foo = QulError_Custom + 1, CustomError_Bar };

可以使用整数参数 param1param2param3 提供可选信息。以下示例测试 someValue 是否大于 5。如果断言失败,将通过 param1 显示 someValue 的实际值。

uint8_t someValue = 6;
QUL_ASSERT(someValue > 5, static_cast<QulError>(CustomError_Bar), someValue);

设置自定义错误处理器

使用 Qul::setErrorHandler 设置自定义错误处理器。

在特定 Qt 许可证下提供。
了解更多信息。