You need to enable JavaScript to run this app.
对象存储

对象存储

复制全文
Python
异常处理(Python SDK)
复制全文
异常处理(Python SDK)

本文介绍使用 TOS SDK 时的异常处理。

TOS 服务端错误

TOS 服务端遵循 HTTP 规范,对于请求失败的场景定义了详细的 HTTP 状态码和业务错误码。详细内容请参见 TOS 服务端状态码和错误码定义

SDK 自定义异常/错误

客户端异常/错误 - TosClientError

TosClientError 是客户端输入参数有误、连接超时或客户端执行取消断点续传上传等特殊操作引起的。例如使用 create_bucket 创建桶时,如果桶名字符长度大于 63 个字符则抛出异常。

服务端异常/错误 - TosServerError

通过 TOS Python SDK 接口向 TOS 服务端发送请求,请求响应中会包含遵循 HTTP 规范的状态码和业务错误码,用于标识当前请求的响应状态。

异常/错误处理示例

以下代码展示了下载一个不存在的对象时的异常处理,若为 TosServerError 异常则打印 HTTP 请求状态码和请求 ID,若为 TosClientError 异常则打印异常消息。

import os
import tos

# 从环境变量获取 AK 和 SK 信息。
ak = os.getenv('TOS_ACCESS_KEY')
sk = os.getenv('TOS_SECRET_KEY')
endpoint = "your endpoint"
region = "your region"
bucket_name = "bucket-test"
object_key = "object-test"
try:
    # 创建 TosClientV2 对象,对桶和对象的操作都通过 TosClientV2 实现
    client = tos.TosClientV2(ak, sk, endpoint, region)
    # 下载对象
    resp = client.get_object(bucket_name, object_key)
except tos.exceptions.TosClientError as e:
    # 操作失败,捕获客户端异常,一般情况为非法请求参数或网络异常
    print('fail with client error, message:{}, cause: {}'.format(e.message, e.cause))
except tos.exceptions.TosServerError as e:
    # 操作失败,捕获服务端异常,可从返回信息中获取详细错误信息
    print('fail with server error, code: {}'.format(e.code))
    # request id 可定位具体问题,强烈建议日志中保存
    print('error with request id: {}'.format(e.request_id))
    print('error with message: {}'.format(e.message))
    print('error with http code: {}'.format(e.status_code))
    print('error with ec: {}'.format(e.ec))
    print('error with request url: {}'.format(e.request_url))
except Exception as e:
    print('fail with unknown error: {}'.format(e))
最近更新时间:2024.02.04 18:30:54
这个页面对您有帮助吗?
有用
有用
无用
无用