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

【AUTOSAR AP CorAUTOSAR AP 错误处理与返回值规范:ErrorCode / ErrorDomain / Result / Exception / Violation 的工程化选型

目录标题

  • AUTOSAR AP 错误处理与返回值规范:ErrorCode / ErrorDomain / Result / Exception / Violation 的工程化选型
    • 1. 错误分类先行:把“失败”拆成 4 种语义
      • 1.1 Error:可恢复、属于 API 的正常输出域
      • 1.2 Violation:断言级失败、不可恢复
      • 1.3 Corruption:系统资源被破坏、不可恢复
      • 1.4 Failed Default Allocation:默认分配器失败、不可恢复
      • 1.5 4 类失败与机制映射表
    • 2. ErrorCode / ErrorDomain:把 “int 错误码”升级为可交换的系统语义
      • 2.1 为什么 AP 不满足于 “0/-1 + errno”
      • 2.2 ErrorCode 的结构:value + domain + support data
      • 2.3 ErrorDomain 的关键价值:唯一身份与跨 ECU 可交换
      • 2.4 Vendor-specific error domain:扩展错误的硬约束
      • 2.5 “要不要每个库都建一个 domain?”
    • 3. Result / Future / Exception:AP 的双工作流与强制边界
      • 3.1 Result:ValueOrError,且 ErrorType 被强制为 ErrorCode
      • 3.2 Duality:AP API 不会用 “直接 throw”来表达 Error
      • 3.3 ValueOrThrow:允许异常风格,但要对工具链友好
      • 3.4 Future/Promise:为与 Result 互操作而改造;GetResult 永不抛异常
    • 4. Violation / Abort 与“库 vs 应用进程”的落地策略
      • 4.1 Violation 的实现陷阱:noexcept 下的 std::terminate
      • 4.2 Abort:明确“不回退、不展开栈”的终止语义
      • 4.3 应用进程(App) vs 库(Library)的推荐选型
      • 4.4 工程检查清单:把规范落到 code review
  • 结语


AUTOSAR AP 错误处理与返回值规范:ErrorCode / ErrorDomain / Result / Exception / Violation 的工程化选型

参考:AUTOSAR AP R25-11《Specification of Adaptive Platform Core》(SWS Core 章节 7.2 Error handling 等)。

1. 错误分类先行:把“失败”拆成 4 种语义

在 AP 语境里,“失败”不是一个桶:不同失败类型对应不同处理机制。认知心理学里常用一句话形容信息缺失的风险——“你看到的就是全部”(WYSIATI);把所有失败都压成一个-1,往往会让上层以为“世界就只有一种失败”。

1.1 Error:可恢复、属于 API 的正常输出域

Core 规范定义:Error 是“假设无 bug 的 API 仍无法完成其 specified purpose”,多由无效/意外输入或不合时机的输入导致;并明确

http://www.cnnetsun.cn/news/140069.html

相关文章:

  • 舔狗的情绪价值和演员的自我修养
  • 30、编程与脚本编写指南
  • 33、Shell脚本中的控制操作符与交互式输入技巧
  • vue和springboot框架开发的协同过滤算法的电影推荐系统 电影评价管理系统_ 影评解说系统z9p6gctw
  • vscode 连接失败
  • 【Linux系统】初探虚拟地址空间
  • vue和springboot框架开发的小程序 健身服务与轻食间平台系统健身减肥系统_xj840td0
  • vue和springboot框架开发的小程序儿童疫苗接种预约医疗提醒系统_5dq9226p
  • 【记录】Rust|Rust开发相关的7个VSCode插件的介绍和推荐指数(2025年)
  • C++小程序编写系列(2)
  • python-flask-django公司企业员工出差报销管理系统_04446nsn
  • Glyph2D 同一个图形根据点云的输入产生不同位置的输出
  • Lombok 注解:简化 Java 代码
  • 别让大数据“全表扫描”掏空你:数据分区策略与分区裁剪的实战心经
  • (转载)真正的缘分,“推背感”都跟强
  • Hadoop生态下的数据预处理:MapReduce实战案例解析
  • 2025 年 CTF 零基础入门全攻略!新手必藏!这种实战网络对抗机会千万别错过!
  • 新手也能轻松建站!VanBlog+cpolar让博客创作和分享更简单
  • vue导出excel文件
  • 基于STM32的自动售货机控制系统设计
  • 液压挖掘机回转能量回收系统设计与仿真
  • android 媒体之 MediaSession
  • 校园网络规划
  • 护眼灯已足够优秀,为何仍需眼调节训练灯?答案藏在近视防控里
  • Visual Studio中的多态
  • MindSpore硬核实战:彻底搞懂自动混合精度(AMP)与函数式训练
  • Java异常处理详解。零基础小白到精通,收藏这篇就够了
  • 基于深度学习YOLOv12的犬种识别检测系统(YOLOv12+YOLO数据集+UI界面+登录注册界面+Python项目源码+模型)
  • 基于深度学习YOLOv11的犬种识别检测系统(YOLOv11+YOLO数据集+UI界面+登录注册界面+Python项目源码+模型)
  • [插电式混合动力车辆][交替方向乘子法(ADMM)结合CVX]插电式混合动力车辆的能源管理:基于凸优化算法用于模型预测控制MPC研究附Matlab代码