当前位置: 首页 > news >正文

Halcon抛出异常日志

Halcon 抛出异常日志

// 捕获Halcon异常并生成格式化的错误日志信息
// 参数说明:
// - HDevExpDefaultException:Halcon异常对象引用,包含具体的异常信息
// - functName:发生异常的函数名称,用于日志定位
// - htMessage:输出参数,用于存储格式化后的完整错误信息
void CatchHexceptLog(const HalconCpp::HException& HDevExpDefaultException, std::string functName, std::string& htMessage)
{// 定义变量,用于存储异常发生的行号和操作符字符串std::string strLine, strOperator;// 定义Halcon数据结构HTuple,用于存储异常相关信息// htException:存储转换后的异常数据// hv_ErrorLine:存储异常发生的程序行号// hv_Operator:存储发生异常的Halcon操作符// hv_OperatorMsg:存储操作符相关的错误消息HTuple  htException, hv_ErrorLine, hv_Operator, hv_OperatorMsg;// 将HException异常对象转换为HTuple类型,便于后续提取异常详情HDevExpDefaultException.ToHTuple(&htException);// 从异常数据中提取"program_line"(程序行号)信息,存储到hv_ErrorLineHException::GetExceptionData(htException, "program_line", &hv_ErrorLine);// 从异常数据中提取"operator"(操作符)信息,存储到hv_OperatorHException::GetExceptionData(htException, "operator", &hv_Operator);// 从异常数据中提取"error_message"(错误消息)信息,存储到hv_OperatorMsgHException::GetExceptionData(htException, "error_message", &hv_OperatorMsg);// 将行号从HTuple类型转换为std::string类型,便于字符串拼接strLine = hv_ErrorLine.ToString().Text();// 将操作符从HTuple类型转换为std::string类型strOperator = hv_Operator.ToString().Text();// 构建基础错误信息,包含行号、操作符和消息前缀std::string Message = "Line:" + strLine + ", Op:" + strOperator + ", Msg:";// 获取异常的错误消息字符串(HException自带的错误描述)std::string msgError = HDevExpDefaultException.ErrorMessage();// 组合所有信息:函数名 + 基础错误信息 + 详细错误描述,存入输出参数htMessage = functName + "-->" + Message + msgError;
}

使用方式

try{
// ...省略
}
catch (HException& excp)
{std::string errMess;CatchHexceptLog(excp, __FUNCTION__, errMess);qDebug() << str2QStr(errMess);return false;
}
http://www.gsyq.cn/news/9852.html

相关文章:

  • ZYNQ PS 端 UART 接收数据素材帧(初学者友好版)嵌入式编程 C语言 c++ 软件开发
  • Photoshop 2025 v26.0(PS2025)下载安装教程(含一键安装包下载)
  • 网络加速原理
  • 数据结构思维题选做(长期更新)
  • 政治笔记/错题
  • 【mysql】mysql客户端中文显示乱码
  • k8s系列--资源清单yml文件
  • k8s系列(14)--探针检测
  • k8s系列--控制器yml(15)
  • AT_abc200_e [ABC200E] Patisserie ABC 2 题解
  • 日总结 5
  • Linux驱动开发(1)概念、环境与代码框架 - 实践
  • 寻路算法
  • day 1
  • 学习问题日记-1
  • 记一次生产环境内存溢出记录
  • LeetCode:15.转轮数组 - 详解
  • Android 中获取稳定时间的方法 - 指南
  • 【精品资料鉴赏】RPA财务机器人应用(基于UiPath)教材配套课件 - 详解
  • CF2146 Codeforces Round 1052 (Div. 2) 游记
  • 如何安装 SQLPro Studio for Mac?v2024.21.dmg 文件安装步骤详解(附安装包)
  • 易路斩获招聘、薪酬两大重磅人力资源奖项,尽显行业领军风范!
  • Xilnx FPGA 资源结构
  • 2025年录音转文字技术解析与实用工具评测 - 指南
  • CF2147H Maxflow GCD Coloring 题解
  • Uiverse.io 2.0 震撼发布:新增 3000+ 动效组件!适配 React、Vue
  • 问题及解决方法
  • 2025.9.22
  • 联想拯救者无法登录当前账户
  • WPF二合一平板电脑上屏幕旋转时获取屏幕宽高问题