Topik ini menjelaskan cara menangani kesalahan saat menggunakan OSS SDK untuk C.
Penanganan pengecualian
Jika terjadi error saat mengirim permintaan menggunakan OSS SDK untuk C, pesan error yang sesuai akan dikembalikan dalam struktur aos_status_s. Tabel berikut menjelaskan error yang dikembalikan dalam aos_status_s.
Kode kesalahan | Deskripsi | Tipe |
code | Kode status HTTP dari permintaan kesalahan. | Integer |
error_code | Kode kesalahan yang dikembalikan oleh OSS. | String |
error_msg | Pesan kesalahan yang dikembalikan oleh OSS. | String |
req_id | UUID yang mengidentifikasi permintaan. | String |
Penanganan waktu habis
Jika kode status HTTP dalam parameter aos_status_t yang dikembalikan bukan 2xx dan error_code menunjukkan -992 atau -995, koneksi atau permintaan telah habis waktu. Anda dapat mengirim ulang permintaan tersebut.
Anda dapat menggunakan aos_should_retry(aos_status_t *) dalam file aos_status.h untuk menentukan apakah suatu kesalahan memerlukan pengulangan berdasarkan nilai yang dikembalikan. Jika nilai 1 dikembalikan, Anda perlu melakukan pengulangan untuk kesalahan tersebut.
Kode kesalahan umum
Kode kesalahan | Deskripsi | Kode status HTTP |
AccessDenied | Akses ditolak. | 403 |
BucketAlreadyExists | Bucket sudah ada. | 409 |
BucketNotEmpty | Bucket tidak kosong. | 409 |
EntityTooLarge | Ukuran entitas melebihi batas maksimum. | 400 |
EntityTooSmall | Ukuran entitas di bawah batas minimum. | 400 |
FileGroupTooLarge | Ukuran grup file melebihi batas maksimum. | 400 |
FilePartNotExist | Bagian tidak ada. | 400 |
FilePartStale | Bagian telah kedaluwarsa. | 400 |
InvalidArgument | Format parameter tidak valid. | 400 |
InvalidAccessKeyId | ID AccessKey tidak ada. | 403 |
InvalidBucketName | Nama bucket tidak valid. | 400 |
InvalidDigest | Digest tidak valid. | 400 |
InvalidObjectName | Nama objek tidak valid. | 400 |
InvalidPart | Bagian tidak valid. | 400 |
InvalidPartOrder | Urutan bagian tidak valid. | 400 |
InvalidTargetBucketForLogging | Bucket untuk logging tidak valid. | 400 |
InternalError | Terjadi kesalahan internal OSS. | 500 |
MalformedXML | Format XML tidak valid. | 400 |
MethodNotAllowed | Metode tidak didukung. | 405 |
MissingArgument | Beberapa parameter yang diperlukan tidak ditentukan. | 411 |
MissingContentLength | Panjang konten tidak ada. | 411 |
NoSuchBucket | Bucket tidak ada. | 404 |
NoSuchKey | Objek tidak ada. | 404 |
NoSuchUpload | ID unggah multipart tidak ada. | 404 |
NotImplemented | Metode tidak dapat diimplementasikan. | 501 |
PreconditionFailed | Terjadi kesalahan selama pra-pemrosesan. | 412 |
RequestTimeTooSkewed | Deviasi waktu antara klien OSS dan server OSS melebihi 15 menit. | 403 |
RequestTimeout | Permintaan habis waktu. | 400 |
SignatureDoesNotMatch | Terjadi kesalahan tanda tangan. | 403 |
TooManyBuckets | Jumlah bucket melebihi batas. | 400 |