OSS Java SDK包含两类异常,一类是客户端异常ClientException,另一类是服务器端异常OSSException,它们均继承自RuntimeException。
异常处理示例
以下代码用于展示异常处理:
try {
// OSS操作,例如上传文件
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。当上传文件时发生IO异常,也会抛出ClientException。
OSSException
OSSException指服务器端异常,它来自于对服务器错误信息的解析。OSSException包含OSS返回的错误码和错误信息,便于定位问题,并做出适当的处理。
OSSException通常包含以下错误信息:
参数 |
描述 |
Code |
OSS返回的错误码。 |
Message |
OSS返回的详细错误信息。 |
RequestId |
用于唯一标识该请求的UUID。当您无法解决问题时,可以提供RequestId来请求OSS开发工程师的帮助。 |
HostId |
用于标识访问的OSS集群,与请求时使用的Host一致。 |
OSS常见错误码
错误码 |
描述 |
HTTP状态码 |
AccessDenied |
拒绝访问 |
403 |
BucketAlreadyExists |
存储空间已经存在 |
409 |
BucketNotEmpty |
存储空间非空 |
409 |
EntityTooLarge |
实体过大 |
|
EntityTooSmall |
实体过小 |
400 |
FileGroupTooLarge |
文件组过大 |
400 |
FilePartNotExist |
文件分片不存在 |
400 |
FilePartStale |
文件分片过时 |
400 |
InvalidArgument |
参数格式错误 |
400 |
InvalidAccessKeyId |
AccessKeyId不存在 |
403 |
InvalidBucketName |
无效的存储空间名称 |
400 |
InvalidDigest |
无效的摘要 |
400 |
InvalidObjectName |
无效的文件名称 |
400 |
InvalidPart |
无效的分片 |
400 |
InvalidPartOrder |
无效的分片顺序 |
400 |
InvalidTargetBucketForLogging |
Logging操作中有无效的目标存储空间 |
400 |
InternalError |
OSS内部错误 |
500 |
MalformedXML |
XML格式非法 |
400 |
MethodNotAllowed |
不支持的方法 |
405 |
MissingArgument |
缺少参数 |
411 |
MissingContentLength |
缺少内容长度 |
411 |
NoSuchBucket |
存储空间不存在 |
404 |
NoSuchKey |
文件不存在 |
404 |
NoSuchUpload |
分片上传ID不存在 |
404 |
NotImplemented |
无法处理的方法 |
501 |
PreconditionFailed |
预处理错误 |
412 |
RequestTimeTooSkewed |
客户端本地时间和OSS服务器时间相差超过15分钟 |
403 |
RequestTimeout |
请求超时 |
400 |
SignatureDoesNotMatch |
签名错误 |
403 |
InvalidEncryptionAlgorithmError |
指定的熵编码加密算法错误 |
400 |
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家
阿里云企业补贴进行中: 马上申请
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠
转转请注明出处:https://www.yunxiaoer.com/159755.html