全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网
对象存储 OSS

异常处理

更新时间:2017-06-07 13:26:11

调用OSSClient类的相关接口时,如果抛出异常,则表明操作失败,否则操作成功。抛出异常时,方法返回的数据无效。 OSS Java SDK包含两类异常,一类是服务器端异常OSSException,另一类是客户端异常ClientException,它们均继承自RuntimeException。

异常处理示例

try {
    // Do some operations with the instance here, such as put object...
    client.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.getErrorCode());
    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 (client != null) {
        client.shutdown();
    }
}

ClientException

ClientException表示客户端尝试向OSS发送请求以及数据传输时遇到的异常。例如,当发送请求时网络连接不可用时,则会抛出 ClientException;当上传文件时发生IO异常时,也会抛出ClientException。

OSSException

OSSException指服务器端错误,它来自于对服务器错误信息的解析,包含OSS会返回给用户相应的错误码和错误信息,便于用户定位问题,并做出适当的处理。

OSSException通常包含以下错误信息:

  • Code: OSS返回给用户的错误码。
  • Message: OSS提供的详细错误信息。
  • RequestId: 用于唯一标识该请求的UUID;当您无法解决问题时,可以凭这个RequestId来请求OSS开发工程师的帮助。
  • HostId: 用于标识访问的OSS集群,与用户请求时使用的Host一致。

OSS常见错误码

错误码 描述 HTTP状态码
AccessDenied 拒绝访问 403
BucketAlreadyExists Bucket已经存在 409
BucketNotEmpty Bucket不为空 409
EntityTooLarge 实体过大 400
EntityTooSmall 实体过小 400
FileGroupTooLarge 文件组过大 400
FilePartNotExist 文件Part不存在 400
FilePartStale 文件Part过时 400
InvalidArgument 参数格式错误 400
InvalidAccessKeyId AccessKeyId不存在 403
InvalidBucketName 无效的Bucket名字 400
InvalidDigest 无效的摘要 400
InvalidObjectName 无效的Object名字 400
InvalidPart 无效的Part 400
InvalidPartOrder 无效的part顺序 400
InvalidTargetBucketForLogging Logging操作中有无效的目标bucket 400
InternalError OSS内部发生错误 500
MalformedXML XML格式非法 400
MethodNotAllowed 不支持的方法 405
MissingArgument 缺少参数 411
MissingContentLength 缺少内容长度 411
NoSuchBucket Bucket不存在 404
NoSuchKey 文件不存在 404
NoSuchUpload Multipart Upload ID不存在 404
NotImplemented 无法处理的方法 501
PreconditionFailed 预处理错误 412
RequestTimeTooSkewed 发起请求的时间和服务器时间超出15分钟 403
RequestTimeout 请求超时 400
SignatureDoesNotMatch 签名错误 403
InvalidEncryptionAlgorithmError 指定的熵编码加密算法错误 400
本文导读目录