全部产品
Search
文档中心

Alibaba Cloud SDK:Menangani pengecualian

更新时间:Jun 28, 2025

Topik ini menjelaskan jenis-jenis pengecualian dalam Alibaba Cloud SDK V2.0 untuk Node.js dan cara menanganinya.

Kesalahan akan dilemparkan jika terjadi pengecualian saat menggunakan Alibaba Cloud SDK V2.0 untuk Node.js. Pengecualian dapat dikategorikan menjadi jenis-jenis berikut:

  • UnretryableError: Jenis pengecualian ini disebabkan oleh masalah jaringan. UnretryableError dilemparkan ketika jumlah percobaan ulang mencapai batas maksimum. Anda dapat menggunakan err.data.lastRequest untuk mendapatkan informasi permintaan saat pengecualian terjadi.

  • ResponseError: Jenis pengecualian ini disebabkan oleh kesalahan bisnis. Tiga parameter berikut disediakan untuk mendiagnosis kesalahan:

    • code: Kode kesalahan yang dikembalikan saat pengecualian terjadi.

    • message: Pesan kesalahan yang dikembalikan saat pengecualian terjadi. Pesan tersebut mencakup ID permintaan API yang menyebabkan pengecualian.

    • data: Informasi kesalahan rinci yang dikembalikan oleh server untuk pengecualian tersebut.

Contoh kode:

Penting

Dalam contoh ini, pesan kesalahan dicetak hanya sebagai referensi. Dalam skenario bisnis aktual, tangani pengecualian dengan hati-hati dan jangan abaikan pengecualian dalam proyek Anda. Kami merekomendasikan agar Anda mengambil langkah-langkah yang sesuai untuk menangani pengecualian, seperti menyebarkan pengecualian secara tepat, mencatat log, dan melakukan percobaan ulang. Hal ini membantu memastikan kekokohan dan stabilitas sistem.

const { default: Ecs20140526, DescribeRegionsRequest } = require('@alicloud/ecs20140526');
const { Config } = require('@alicloud/openapi-client');
const { RuntimeOptions } = require('@alicloud/tea-util');
async function main() {
    const config = new Config({
        // Dapatkan ID AccessKey dari pengguna RAM dari variabel lingkungan.
        accessKeyId: process.env.ALIBABA_CLOUD_ACCESS_KEY_ID,
        // Dapatkan Rahasia AccessKey dari pengguna RAM dari variabel lingkungan.
        accessKeySecret: process.env.ALIBABA_CLOUD_ACCESS_KEY_SECRET,
        // ID wilayah.
        regionId: 'cn-beijing',
    });
    const client = new Ecs20140526(config);
    const request = new DescribeRegionsRequest({
        instanceChargeType: "PrePaid",
    });
    // Buat instance RuntimeOptions dan konfigurasikan parameter runtime. 
    const runtime = new RuntimeOptions();
    try {
        const resp = await client.describeRegionsWithOptions(request, runtime);
        console.log(resp.headers);
        console.log(resp.body);
    } catch (err) {
        // Tangani pengecualian dengan hati-hati berdasarkan skenario bisnis aktual Anda dan jangan abaikan pengecualian dalam proyek Anda. Pesan kesalahan yang ditampilkan dalam contoh ini hanya untuk referensi. 
        console.log(err.code);
        console.log(err.message);
        console.log(err.data);
    }
}

main();
import Ecs20140526, * as $Ecs20140526 from '@alicloud/ecs20140526';
import * as $OpenApi from '@alicloud/openapi-client';
import * as $Util from '@alicloud/tea-util';

export default class Client {
    static async main(): Promise<void> {
        const config = new $OpenApi.Config({
            // Dapatkan ID AccessKey dari pengguna RAM dari variabel lingkungan.
            accessKeyId: process.env.ALIBABA_CLOUD_ACCESS_KEY_ID,
            // Dapatkan Rahasia AccessKey dari pengguna RAM dari variabel lingkungan.
            accessKeySecret: process.env.ALIBABA_CLOUD_ACCESS_KEY_SECRET,
            // Wilayah yang ingin Anda akses.
            regionId: 'cn-beijing',
        });
        const client = new Ecs20140526(config);
        const request = new $Ecs20140526.DescribeRegionsRequest({
            instanceChargeType: "PrePaid",
        });
        // Buat instance RuntimeOptions dan konfigurasikan parameter runtime. 
        const runtime = new $Util.RuntimeOptions();
        try {
            const resp = await client.describeRegionsWithOptions(request, runtime);
            console.log(resp.headers);
            console.log(resp.body);
        } catch (err) {
            // Tangani pengecualian dengan hati-hati berdasarkan skenario bisnis aktual Anda dan jangan abaikan pengecualian dalam proyek Anda. Pesan kesalahan yang ditampilkan dalam contoh ini hanya untuk referensi. 
            console.log(err.code);
            console.log(err.message);
            console.log(err.data);
        }
    }
}