8. 错误处理

8.1. 异常处理

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

8.2. 异常处理实例

错误处理代码如下所示:

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

8.3. NosException

NosException指包括两类:

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