开发者社区> 问答> 正文

Java-SDK - 异常处理


调用OSSClient类的相关接口时,[backcolor=transparent]如果抛出异常,则表明操作失败,否则操作成功。抛出异常时,方法返回的数据无效。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
BucketAlreadyExistsBucket已经存在409
BucketNotEmptyBucket不为空409
EntityTooLarge实体过大400
EntityTooSmall实体过小400
FileGroupTooLarge文件组过大400
FilePartNotExist文件Part不存在400
FilePartStale文件Part过时400
InvalidArgument参数格式错误400
InvalidAccessKeyIdAccessKeyId不存在403
InvalidBucketName无效的Bucket名字400
InvalidDigest无效的摘要400
InvalidObjectName无效的Object名字400
InvalidPart无效的Part400
InvalidPartOrder无效的part顺序400
InvalidTargetBucketForLoggingLogging操作中有无效的目标bucket400
InternalErrorOSS内部发生错误500
MalformedXMLXML格式非法400
MethodNotAllowed不支持的方法405
MissingArgument缺少参数411
MissingContentLength缺少内容长度411
NoSuchBucketBucket不存在404
NoSuchKey文件不存在404
NoSuchUploadMultipart Upload ID不存在404
NotImplemented无法处理的方法501
PreconditionFailed预处理错误412
RequestTimeTooSkewed发起请求的时间和服务器时间超出15分钟403
RequestTimeout请求超时400
SignatureDoesNotMatch签名错误403
[tr=rgb(239, 251, 255)][td]InvalidEncryptionAlgorithmError 指定的熵编码加密算法错误400

展开
收起
青衫无名 2017-10-18 11:15:42 1815 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
跨平台的云服务SDK需要什么 立即下载
如何通过 Serverless 提高 Java 微服务治理效 立即下载
一个跨平台的云服务SDK需要什么 立即下载