Java例外用のObject Storage Service (OSS) SDKは、OSSExceptionとClientExceptionの2つのタイプに分類されます。 どちらの型もRuntimeExceptionのサブクラスです。
例
次のサンプルコードは、例外を処理する方法の例を示しています。
try {
// Perform operations on OSS such as object upload.
ossClient.putObject(...);
} catch (OSSException oe) {
System.out.println("Caught an OSSException, which means your request made it to OSS, "
+ "but was rejected with an error response for some reason.");
System.out.println("Error Message: " + oe.getErrorMessage());
System.out.println("Error Code: " + oe.getErrorCode());
System.out.println("Request ID: " + oe.getRequestId());
System.out.println("Host ID: " + oe.getHostId());
} catch (ClientException ce) {
System.out.println("Caught an ClientException, which means the client encountered "
+ "a serious internal problem while trying to communicate with OSS, "
+ "such as not being able to access the network.");
System.out.println("Error Message: " + ce.getMessage());
} finally {
if (ossClient != null) {
ossClient.shutdown();
}
}
ClientException
ClientExceptionは、クライアントがOSSにリクエストを送信するか、データを送信するときに発生する例外を示します。 たとえば、ClientExceptionは、ネットワークの切断によりクライアントがリクエストの送信に失敗した場合に返されます。 ClientExceptionは、オブジェクトのアップロード中にI/O例外が発生した場合にも返されます。
OSSException
OSSExceptionは、サーバーエラーメッセージの解決から発生するサーバー例外を示します。 OSSExceptionには、OSSから返されるエラーコードとエラーメッセージが含まれます。 これにより、エラーを特定して解決できます。
OSSExceptionには次のエラー情報が含まれます。
パラメーター | 説明 |
Code | OSSによって返されるエラーコード。 |
Message | OSSから返される詳細なエラーメッセージ。 |
RequestId | リクエストを一意に識別するために使用されるUUID。 問題が解決しない場合は、リクエストIDをOSS開発エンジニアに提供して、テクニカルサポートを取得できます。 |
HostId | アクセスされたOSSクラスター内のホストのID。リクエストで指定されたホストIDと同じです。 |
OSS エラーコード
エラーコード | 説明 | HTTPステータスコード |
AccessDenied | アクセスは拒否されました。 | 403 |
BucketAlreadyExists | バケットが既に存在します。 | 409 |
BucketNotEmpty | バケットが空ではありません。 | 409 |
EntityTooLarge | エンティティサイズが上限を超えています。 | 400 |
EntityTooSmall | エンティティサイズが下限を下回っています。 | 400 |
FileGroupTooLarge | オブジェクトグループのサイズが上限を超えています。 | 400 |
FilePartNotExist | オブジェクトのパーツが存在しません。 | 400 |
FilePartStale | オブジェクトパーツは期限切れです。 | 400 |
InvalidArgument | パラメーターの形式が無効です。 | 400 |
InvalidAccessKeyId | AccessKey IDが存在しません。 | 403 |
InvalidBucketName | バケット名が無効です。 | 400 |
InvalidDigest | ダイジェストが無効です。 | 400 |
InvalidObjectName | オブジェクト名が無効です。 | 400 |
InvalidPart | オブジェクトパーツが無効です。 | 400 |
InvalidPartOrder | 部品シーケンスが無効です。 | 400 |
InvalidTargetBucketForLogging | ロギング用のバケットが無効です。 | 400 |
内部エラー | 内部OSSエラーが発生しました。 | 500 |
MalformedXML | XML 形式が無効です。 | 400 |
MethodNotAllowed | メソッドがサポートされていません。 | 405 |
MissingArgument | 一部の必須パラメーターが指定されていません。 | 411 |
MissingContentLength | コンテンツ長がありません。 | 411 |
NoSuchBucket | ユーザーは存在しません。 | 404 |
NoSuchKey | オブジェクトは存在しません。 | 404 |
NoSuchUpload | マルチパートアップロード ID が存在しません。 | 404 |
NotImplemented | そのメソッドは実装できません。 | 501 |
PreconditionFailed | 前処理中にエラーが発生しました。 | 412 |
RequestTimeTooSkewed | OSSクライアントとOSSサーバーの時間偏差が15分を超えています。 | 403 |
RequestTimeout | リクエストがタイムアウトしました。 | 400 |
SignatureDoesNotMatch | 署名エラーが発生しました。 | 403 |
InvalidEncryptionAlgorithmError | 暗号化アルゴリズムが無効です。 | 400 |