OSS SDK for Java例外は、OSSExceptionとClientExceptionの2つのタイプに分類されます。 どちらもRuntimeExceptionのサブクラスです。
例外処理の例
次のコードは、例外を処理する方法の例を示しています。
try {
// OSSに対してオブジェクトのアップロードなどの操作を実行します。
ossClient.putObject(...);
} catch (OSSException oe) {
System.out.println("Caught an OSSException, which means your request made it to OSS, "
+ "しかし、何らかの理由でエラー応答で拒否されました。");
System.out.println("エラーメッセージ:" + oe.getErrorMessage());
System.out.println("Error Code: " + oe.getErrorCode());
System.out.println("Request ID: " + oe.getRequestId());
System.out.println("ホスト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, "
+ 「ネットワークにアクセスできないなど」;
System.out.println("エラーメッセージ:" + ce.getMessage());
} finally {
if (ossClient != null) {
ossClient.shutdown();
}
}
ClientException
ClientExceptionは、クライアントがOSSに要求を送信したり、データを送信したりするときに発生する例外を示します。 たとえば、ClientExceptionは、悪いネットワーク条件下で要求が送信されたときに返されます。 ClientExceptionは、オブジェクトのアップロード中にI/O例外が発生した場合にも返されます。
OSSException
OTSException: サーバーエラーメッセージの解決から発生するサーバー例外を示します。 ServiceExceptionには、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 |