Pelajari jenis pengecualian di SDK V2.0 dan cara menanganinya.
Jenis pengecualian
SDK V2.0 mengklasifikasikan pengecualian ke dalam jenis-jenis berikut:
-
TeaUnretryableException: Dilemparkan ketika masalah jaringan tetap terjadi setelah semua upaya pengulangan habis. Panggil
exception.getLastRequestuntuk memeriksa permintaan yang gagal. -
TeaException: Menunjukkan kesalahan bisnis. Gunakan parameter berikut untuk pemecahan masalah:
-
code: Kode kesalahan bisnis OpenAPI.
-
message: Pesan kesalahan, yang mencakup RequestId.
-
data: Informasi kesalahan detail yang dikembalikan oleh server.
-
Contoh ini hanya mencetak output untuk tujuan demonstrasi. Di lingkungan produksi, tangani pengecualian dengan benar—sebarkan, catat (log), atau lakukan pemulihan untuk memastikan stabilitas sistem.
import com.aliyun.ecs20140526.models.DescribeRegionsRequest;
import com.aliyun.tea.TeaException;
import com.aliyun.tea.TeaUnretryableException;
import com.aliyun.tea.ValidateException;
import com.aliyun.teaopenapi.models.Config;
import com.aliyun.teautil.models.RuntimeOptions;
public class Sample {
public static void main(String[] args) throws Exception {
Config config = new com.aliyun.teaopenapi.models.Config();
// Dapatkan ID AccessKey dari RAM user dari variabel lingkungan.
config.setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"));
// Dapatkan Rahasia AccessKey dari RAM user dari variabel lingkungan.
config.setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
// ID wilayah.
config.setRegionId("<regionId>");
com.aliyun.ecs20140526.Client client = new com.aliyun.ecs20140526.Client(config);
DescribeRegionsRequest describeRegionsRequest = new DescribeRegionsRequest();
try {
client.describeRegions(describeRegionsRequest);
} catch(TeaUnretryableException ue) {
// Ini hanya untuk demonstrasi. Tangani pengecualian dengan hati-hati dan jangan abaikan di proyek Anda.
ue.printStackTrace();
// Cetak pesan kesalahan.
System.out.println(ue.getMessage());
// Cetak catatan permintaan.
System.out.println(ue.getLastRequest());
} catch (TeaException e) {
// Ini hanya untuk demonstrasi. Tangani pengecualian dengan hati-hati dan jangan abaikan di proyek Anda.
e.printStackTrace();
// Cetak kode kesalahan.
System.out.println(e.getCode());
// Cetak pesan kesalahan, yang mencakup RequestId.
System.out.println(e.getMessage());
// Cetak konten spesifik yang dikembalikan oleh server.
System.out.println(e.getData());
}
}
}
Menangani pengecualian
Untuk memecahkan masalah pengecualian panggilan API:
-
Salin RequestId dari pengecualian dan gunakan OpenAPI Diagnostics untuk mengidentifikasi penyebabnya. OpenAPI Diagnostics.
-
Cari kode kesalahan di dokumentasi produk terkait.
-
Periksa FAQ untuk solusi.
-
Hubungi dukungan teknis.