You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中装饰器遇AttributeError时如何实现自动重试重启?

解决方案

你的问题出在仅处理了一次异常重试——第一次捕获到AttributeError后直接调用func(),如果这次再次抛出错误,就没有后续的异常处理逻辑了。要解决多次出错的情况,需要用循环实现重复重试,同时建议设置最大重试次数避免无限循环。

示例代码(带最大重试次数)

max_retries = 3  # 设定最大重试次数
retry_count = 0

while retry_count < max_retries:
    try:
        func()
        break  # 成功执行就跳出循环
    except AttributeError:
        retry_count += 1
        print(f'登录错误,正在重试第 {retry_count} 次...')
else:
    # 重试次数用完仍失败时触发
    print(f'已重试{max_retries}次,登录仍失败')

代码说明

  • 用while循环控制重试次数,每次失败后计数器加1
  • 成功执行func()后立即break退出循环
  • else分支用于处理重试耗尽仍未成功的场景
  • 如果无需限制重试次数,也可以改成无限循环(不推荐,可能导致程序挂起):
while True:
    try:
        func()
        break
    except AttributeError:
        print('登录错误,重试中...')

内容的提问来源于stack exchange,提问作者Krya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 12:54:55