.. _stream_exception_handling: Stream异常处理 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 当一个Stream中的指令执行出现异常后,用户可以通过回调函数的方式获取到出现异常的模块和具体的错误码判断出现异常的原因。在一个进程内,需要对一个Device对应的Context注册一次回调函数。用户开发过程中,通过lynRegisterErrorHandler注册异常回调函数。 以下代码中用例中将展示如何注册异常回调函数,用户可以从LynSDK提供的示例代码中查看完整样例,在示例代码中,调用各接口后都添加了异常判断和处理,以下是关键步骤代码示例,仅供参考,不可以直接拷贝编译。 .. code-block:: c++ std::atomic_bool bErrFlg; /// 异常回调函数实现 void StreamErrMsgHandler(lynStream_t stream, lynErrorMsg_t *errorMsg, void *params) { std::cout << "error code : " << errorMsg->errCode << std::endl; std::cout << "error msg : " << errorMsg->errMsg << std::endl; std::cout << "error module : " << errorMsg->errModule << std::endl; std::cout << "error function : " << errorMsg->errFunction << std::endl; bErrFlg = true; } int main() { int32_t devID = 0; lynContext_t ctx0 = nullptr; ERROR_RET(lynCreateContext(&ctx0, devID)); /// 注册异常回调函数 ERROR_RET(lynRegisterErrorHandler(StreamErrMsgHandler, nullptr)); /// 用户业务代码 }