跳到主要内容

错误码与 SDK 异常

失败时 SDK 抛出 GStableError 或其子类。使用 isGStableError(err) 做类型收窄。

基类

属性含义
code数字型业务或传输错误码;-1 常在收到 HTTP 响应前表示网络错误。
message人类可读说明;不要依赖固定英文文案做分支。

createTypedApiError

当 API 返回信封且 code !== 0 时,HTTP 层调用 createTypedApiError(code, message)

条件抛出类型
商品区间 100301–100306GStableProductErrorproductErrorCodecode 相同)
已知 通用/校验码(SDK 常量中的 400XXXGStableCommonError
已知 平台码(900XXX / 999999GStablePlatformError
其他GStableError

商品码(ProductErrorCodes

常量典型含义
NOT_FOUND100301商品 ID 不存在。
PARTIAL_MISSING100302批量:部分 ID 缺失。
PARTIALLY_UNAVAILABLE100303批量:部分不可用。
NOT_ACTIVE100304未激活,无法用于 link/session。
HAS_BEEN_USED100305因已被使用而禁止变更。
HAS_BEEN_REMOVED100306已逻辑删除。

使用 isProductErrorCode(code)ProductErrorMessages(仅作文案参考)。

通用码(CommonErrorCodes

常量
INVALID_FIELD_FORMAT400101
UNSUPPORTED_CURRENCY400201
UNSUPPORTED_CHANNEL400202
SETTLEMENT_CAPABILITIES_NOT_FOUND400203
STAT_NOT_FOUND400301

平台码(PlatformErrorCodes

常量
TOO_MANY_REQUESTS900101
FAILED_TO_CREATE_RECORD900201
FAILED_TO_UPDATE_RECORD900202
FAILED_TO_QUERY_RECORD900203
IMAGE_PROCESSING_FAILED900301
INTERNAL_SYSTEM_ERROR999999

HTTP / 传输边界情况

  • 非 JSON body(HTML、WAF、代理)→ GStableError,带描述性 message(SDK 对 403/401 等有辅助信息)。
  • HTTP 200 但 无效信封GStableError

权威分类

完整、权威的表格见主站 API 概览 → Errorsdocs.gstable.io

示例 — 按商品错误分支

import {
GStableClient,
isGStableProductError,
ProductErrorCodes,
} from 'gstable-js';

const client = new GStableClient({ apiKey: process.env.GSTABLE_API_KEY });

try {
await client.product.remove('prod_xxx');
} catch (e) {
if (isGStableProductError(e) && e.code === ProductErrorCodes.HAS_BEEN_USED) {
// 处理「使用中」
}
throw e;
}