4.10 错误处理

概述

基本概念

错误处理指用户代码发生错误时,系统调用错误处理模块的接口函数,完成上报错误信息,并调用用户自己的钩子函数,进行特定的处理。

错误处理模块实现OS内部错误码记录功能。OS内部错误码无法通过接口返回,通常会上报错误处理模块进行记录。用户可以通过挂接错误处理的钩子函数,进行特定的处理。如果OS上报的错误是致命错误,系统会进行异常流程接管,从而可以保存现场以便定位问题。

通过错误处理,我们可以把用户在程序中的非法输入进行控制和提示,以防程序崩溃。

运作机制

错误处理是一种机制,用于处理异常状况。当程序出现异常错误的时候,会显示相应的错误码用于提示用户。此外,如果有相应的错误处理程序,则会执行这个程序。

图 1 错误处理示意图

4.10 错误处理 - 图1

开发指导

功能

错误处理模块为用户提供下面几种功能。

功能分类

接口名

描述

错误处理

LOS_ErrHandle

根据错误处理函数来对错误进行处理

注意事项

无。

编程实例

实例描述

在下面的例子中,演示如下功能:

执行错误处理函数。

编程示例

代码实现如下:

  1. extern USER_ERR_FUNC_S g_stUserErrFunc;
  2. void err_handler(CHAR *pcFileName,UINT32 uwLineNo,
  3. UINT32 uwErrorNo,UINT32 uwParaLen,VOID *pPara)
  4. {
  5. printf("err handle ok\n");
  6. }
  7. UINT32 Example_ErrCaseEntry(VOID)
  8. {
  9. g_stUserErrFunc.pfnHook = err_handler;
  10. /*执行错误处理函数*/
  11. LOS_ErrHandle(NULL, 0,0,0, NULL);
  12. return LOS_OK;
  13. }

结果验证

编译运行得到的结果为:

  1. Huawei LiteOS # err handle ok

完整实例代码

sample_err.c