4.10 错误处理
概述
基本概念
错误处理指用户代码发生错误时,系统调用错误处理模块的接口函数,完成上报错误信息,并调用用户自己的钩子函数,进行特定的处理。
错误处理模块实现OS内部错误码记录功能。OS内部错误码无法通过接口返回,通常会上报错误处理模块进行记录。用户可以通过挂接错误处理的钩子函数,进行特定的处理。如果OS上报的错误是致命错误,系统会进行异常流程接管,从而可以保存现场以便定位问题。
通过错误处理,我们可以把用户在程序中的非法输入进行控制和提示,以防程序崩溃。
运作机制
错误处理是一种机制,用于处理异常状况。当程序出现异常错误的时候,会显示相应的错误码用于提示用户。此外,如果有相应的错误处理程序,则会执行这个程序。
图 1 错误处理示意图
开发指导
功能
错误处理模块为用户提供下面几种功能。
注意事项
无。
编程实例
实例描述
在下面的例子中,演示如下功能:
执行错误处理函数。
编程示例
代码实现如下:
extern USER_ERR_FUNC_S g_stUserErrFunc;
void err_handler(CHAR *pcFileName,UINT32 uwLineNo,
UINT32 uwErrorNo,UINT32 uwParaLen,VOID *pPara)
{
printf("err handle ok\n");
}
UINT32 Example_ErrCaseEntry(VOID)
{
g_stUserErrFunc.pfnHook = err_handler;
/*执行错误处理函数*/
LOS_ErrHandle(NULL, 0,0,0, NULL);
return LOS_OK;
}
结果验证
编译运行得到的结果为:
Huawei LiteOS # err handle ok