BA 服务端 API 错误 → HTTP 语义映射(门面统一出口·module-rbac-casl §2.3.1)。
已是 Nest HttpException(门面自身的前置拒绝,如 auth 实例未就绪/guard 拒)原样直透, 不二次包装(保类型与 errorCode 不降级)。 BA APIError 携数值 .statusCode(如 400)+ 字符串码 .status(如 "BAD_REQUEST", 非数值不可直接映射);两者均取首个可解析为有限数者——4xx(400=建租重复 slug、402=seats、 403=membership 等数据事实拒绝)透传状态与消息,并附泛用业务码 ORG:PROVISIONING_REJECTED 于 object response(filter 透传入 envelope.errorCode·前端据 code 辨类、据 status 细分;BA 仅回 不透明 message+status,门面不逐态猜具体语义码);5xx/未知错误原样上抛交全局异常过滤器(500 面不伪装)。 亦兼容仅附数值/数字串 .status 的来源(如测试桩)。
HttpException
APIError
.statusCode
.status
ORG:PROVISIONING_REJECTED
捕获自 BA 服务端调用或门面前置拒绝的未知错误。
从不正常返回:4xx 抛归一 HttpException,其余原样上抛。
将 Better Auth 错误映射为对应 HTTP 错误响应时抛出。
BA 服务端 API 错误 → HTTP 语义映射(门面统一出口·module-rbac-casl §2.3.1)。
已是 Nest
HttpException(门面自身的前置拒绝,如 auth 实例未就绪/guard 拒)原样直透, 不二次包装(保类型与 errorCode 不降级)。 BAAPIError携数值.statusCode(如 400)+ 字符串码.status(如 "BAD_REQUEST", 非数值不可直接映射);两者均取首个可解析为有限数者——4xx(400=建租重复 slug、402=seats、 403=membership 等数据事实拒绝)透传状态与消息,并附泛用业务码ORG:PROVISIONING_REJECTED于 object response(filter 透传入 envelope.errorCode·前端据 code 辨类、据 status 细分;BA 仅回 不透明 message+status,门面不逐态猜具体语义码);5xx/未知错误原样上抛交全局异常过滤器(500 面不伪装)。 亦兼容仅附数值/数字串.status的来源(如测试桩)。