すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:例外処理

最終更新日:Dec 18, 2024

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