Used to check for browser translation.
用于检测浏览器翻译。
ブラウザの翻訳を検出する
核心概念

错误处理


当你使用 Node.js SDK 与 PaymentKit API 交互时,网络问题或无效参数可能会导致操作失败。SDK 通过抛出异常来处理这些情况。正确的错误处理对于构建可靠的应用程序至关重要。

本指南解释了如何使用标准的 JavaScript try...catch 块来有效捕获和处理错误。

捕获错误#

SDK 中的所有异步方法都返回 Promises,这使你可以使用 async/await 语法,并将 API 调用包装在 try...catch 语句中,从而妥善地管理潜在的失败。

当 API 调用失败时,SDK 会抛出一个包含问题相关信息的错误对象。此错误对象的 message 属性提供了清晰、易于人类阅读的错误描述。

示例:处理失败的请求

import payment from '@blocklet/payment-js';

async function safeRetrieveSubscription(subscriptionId) {
try {
// 尝试检索订阅
const subscription = await payment.subscriptions.retrieve(subscriptionId);
console.log('已检索到订阅:', subscription);
return subscription;
} catch (error) {
// 如果请求失败,错误会在这里被捕获
console.error(`未能检索订阅 ${subscriptionId}`, error.message);
// 你可以在此处添加处理失败的逻辑,例如,向用户显示一条消息
return null;
}
}

// 使用不存在的 ID 来触发错误的示例用法
safeRetrieveSubscription('sub_invalid_id');

在此示例中,如果 payment.subscriptions.retrieve 失败(例如,因为 ID 不正确或存在网络问题),代码执行会跳转到 catch 块,从而防止应用程序崩溃,并允许你记录错误并做出适当响应。

错误处理流程#

下图说明了 SDK 方法调用的典型控制流程:

Success

Failure

开始:调用 SDK 方法

尝试 API 请求

方法返回响应数据

SDK 抛出错误

执行 'catch' 块

访问错误详情(例如,error.message)


TypeScript 支持#

如果你正在使用 TypeScript,SDK 会提供完整的类型定义,包括错误对象的定义。这使你可以捕获特定类型的错误,以实现更精确的错误处理逻辑,从而增强应用程序的稳健性。


在对错误处理有了扎实的理解后,你将能更好地构建稳健的支付集成。现在,你可以继续在我们的使用指南中探索实际的实现。