7. 错误处理

7.1. 异常处理

调用AmazonS3Exception类的相关接口时,如果抛出异常,则表明操作失败,否则操作成功。抛出异常时,方法返回的数据无效。AmazonS3Client类的接口异常时会抛出异常类 AmazonS3Exception 。

7.2. 异常处理实例

错误处理代码如下所示:

try
{
    s3Client.ListObjects(bucket);
}
catch (AmazonS3Exception ex)
{
    Console.WriteLine("Failed with HTTPStatus: {0}; \nErrorCode: {1}; \nErrorMessage: {2}; \nRequestID:{3};",
            ex.StatusCode, ex.ErrorCode, ex.Message, ex.RequestId);
catch (Exception ex)
{
    Console.WriteLine("Failed with ErrorMessage: {0}", ex.Message);
}

7.3. AmazonS3Exception

AmazonS3Exception指包括两类:

  • 客户端异常,包括参数无效、文件不存在等错误。该类错误可以通过Exception.Message获取错误信息。
  • 服务器端异常,指NOS返回的错误,比如无权限、文件不存在等。可以通过AmazonS3Exception.Message获取错误信息。该类异常还包含以下信息:
  1. HTTPStatus: HTTP状态码,通过AmazonS3Exception.StatusCode获取。
  2. ErrorCode: NOS返回给用户的错误码,通过AmazonS3Exception.ErrorCode获取。
  3. ErrorMessage: NOS提供的错误描述,通过AmazonS3Exception.Message获取。
  4. RequestId: 用于唯一标识该请求的UUID;当您无法解决问题时,可以凭这个RequestId来请求NOS开发工程师的帮助。通过AmazonS3Exception.RequestId获取。