Topik ini menjelaskan jenis-jenis pengecualian dari Alibaba Cloud SDK V2.0 untuk Java dan cara menangani pengecualian tersebut.
Jenis-jenis pengecualian
Alibaba Cloud SDK V2.0 mengklasifikasikan pengecualian ke dalam beberapa jenis berikut:
TeaUnretryableException: Jenis pengecualian ini disebabkan oleh masalah jaringan. TeaUnretryableException dilemparkan jika jumlah percobaan ulang telah mencapai batas maksimum. Anda dapat memanggil metode
exception.getLastRequestuntuk mendapatkan informasi tentang permintaan API yang menyebabkan pengecualian tersebut.TeaException: Jenis pengecualian ini disebabkan oleh kesalahan bisnis. Tiga parameter berikut tersedia untuk menangani jenis pengecualian ini:
code: Kode kesalahan yang dikembalikan saat pengecualian terjadi.
message: Pesan kesalahan yang dikembalikan saat pengecualian terjadi. Pesan ini mencakup ID permintaan API yang menyebabkan pengecualian.
data: Informasi kesalahan rinci yang dikembalikan oleh server untuk pengecualian tersebut.
Dalam contoh ini, pesan kesalahan hanya ditampilkan sebagai referensi. Dalam skenario bisnis nyata, jangan abaikan pengecualian dalam proyek Anda. Kami sarankan Anda menangani pengecualian dengan benar melalui operasi seperti pelaporan pengecualian, pencatatan log, dan percobaan ulang. Hal ini membantu memastikan ketangguhan dan stabilitas sistem Anda.
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 Pengguna Resource Access Management (RAM) dari variabel lingkungan.
config.setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"));
// Dapatkan Rahasia AccessKey dari Pengguna RAM dari variabel lingkungan.
config.setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
// Tentukan 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) {
// Tangani pengecualian dengan hati-hati dalam skenario bisnis sebenarnya dan jangan pernah abaikan pengecualian dalam proyek Anda. Dalam contoh ini, informasi ditampilkan hanya untuk referensi.
ue.printStackTrace();
// Dapatkan pesan kesalahan.
System.out.println(ue.getMessage());
// Dapatkan permintaan.
System.out.println(ue.getLastRequest());
} catch (TeaException e) {
// Tangani pengecualian dengan hati-hati dalam skenario bisnis sebenarnya dan jangan pernah abaikan pengecualian dalam proyek Anda. Dalam contoh ini, informasi ditampilkan hanya untuk referensi.
e.printStackTrace();
// Dapatkan kode kesalahan.
System.out.println(e.getCode());
// Dapatkan pesan kesalahan. Pesan kesalahan berisi ID permintaan.
System.out.println(e.getMessage());
// Dapatkan informasi kesalahan rinci yang dikembalikan oleh server.
System.out.println(e.getData());
}
}
}Penanganan pengecualian
Berikut adalah metode untuk menemukan solusi atas pengecualian yang mungkin terjadi saat menggunakan Alibaba Cloud SDK V2.0 untuk memanggil operasi API:
Salin ID permintaan dari alat Diagnostik OpenAPI Explorer untuk mendapatkan penyebab dan solusi pengecualian tersebut. Untuk informasi lebih lanjut, lihat Diagnostik Kesalahan OpenAPI.
Cari solusi di referensi API layanan cloud berdasarkan kode kesalahan.
Lihat FAQ tentang Alibaba Cloud SDK untuk Java untuk menemukan solusi.
Hubungi layanan purna jual untuk pemecahan masalah.