From c940bf502c8a2b0be14d863b729d46934a3fd47e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BE=B7=E5=AE=87?= Date: Thu, 1 Oct 2026 20:49:43 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=87=E6=A1=A3=EF=BC=9A=E4=BF=AE=E6=AD=A3?= =?UTF-8?q?=E8=AE=A4=E8=AF=81=20ADR=20=E5=AF=B9=E7=B3=BB=E7=BB=9F=E5=8F=98?= =?UTF-8?q?=E4=BD=93=E5=88=86=E6=94=AF=E7=9A=84=E6=8F=8F=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 说明系统变体不读载荷、只原样抛出,但变体名必须逐个列出以让 default: expectNever 成立 - 业务 / 会话变体仍要求每个 case 用 as 取具名载荷类型 --- .../adr/【ADR】AGC认证失败的JS侧载体与抛出时机-2026-10-01.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/adr/【ADR】AGC认证失败的JS侧载体与抛出时机-2026-10-01.md b/docs/adr/【ADR】AGC认证失败的JS侧载体与抛出时机-2026-10-01.md index 5bf93e66c..9763dd0fa 100644 --- a/docs/adr/【ADR】AGC认证失败的JS侧载体与抛出时机-2026-10-01.md +++ b/docs/adr/【ADR】AGC认证失败的JS侧载体与抛出时机-2026-10-01.md @@ -78,8 +78,9 @@ catch (error) { } ``` -- **每个 `case` 用 `as` 取自己的具名载荷类型**,不写 `error.payload.message` 这种跨变体的 - 通用读取;等价于 Java 的 `catch (PhoneNumberInvalid e)`。 +- **每个业务 / 会话 `case` 用 `as` 取自己的具名载荷类型**,不写 `error.payload.message` 这种 + 跨变体的通用读取;等价于 Java 的 `catch (PhoneNumberInvalid e)`。系统变体不读载荷(调用方 + 只负责原样抛出),但变体名必须逐个列出,`default` 的 `expectNever` 才成立。 - 业务 / 会话变体:把载荷自带的 `message` 原样交给用户,**不加兜底文案**(那就是 Rust 生成的 那一份)。 - 系统变体:调用方处理不了,**原样 `throw`**。`onSubmit` / `onClick` 这类 `void` 掉的 handler