用途:为 SAP CAP 应用提供统一的错误与消息处理规范,帮助在服务处理器中正确抛出、累积和呈现错误。
主要能力:介绍四种消息方法。req.reject 会停止处理并返回错误 HTTP 响应;req.warn 非阻塞,写入 @SAP.Messages OData 注解;req.info 添加信息类消息;req.error 累积错误但不中断,随后调用 req.reject() 一次性抛出全部错误。
HTTP 状态码:400 请求错误或校验失败;401 未认证;403 已认证但未授权;404 实体不存在;409 冲突;422 业务规则失败;500 意外服务器错误,应谨慎使用。
i18n:在 _i18n/messages.properties 中按 KEY=文本 定义消息,处理器中用键引用,CAP 按用户区域自动解析。
结构化错误:可传对象,包含 code、message、target、status,target 指定实体字段,便于 Fiori 内联校验展示。
其他能力:用 cds.on('error', ...) 注册全局错误处理器集中记录并改写错误;远程服务调用用 try/catch 区分超时、404 与意外错误;可继承 cds.error 定义可复用领域错误类。
限制与常见错误:不要直接 throw new Error,避免绕过 CAP 格式化;不要返回错误对象而不调用 req.reject;生产环境不要返回堆栈;业务规则失败不要用 500;校验错误不要遗漏 target;远程调用不要吞掉错误。