如何在 Python 中引发错误之前使用 try 和 catch 多次调用函数

这是我们可能正在做的一项任务:在 for 循环中抓取一些网页。 然后其中一个页面发生了一些错误, 然后整个过程中断,我们还没有将结果存储到磁盘。 所以我们必须再次重新启动该过程。

我们为什么不多次重试其中一个步骤,我们可能会在第二次做对呢?

这是一个函数示例,在最终引发错误之前,使用 try 和 catch 块多次运行相同的任务。

import random 

def multi_try_function_call( num_retries = 5 ):
    for attempt_no in range(num_retries):
        try:
            
            print(f'************* try time at {attempt_no}*************')
            failure_chance =  random.random()
                        
            if failure_chance>0.6:
                print('there is going to be error')
                return 1/0
            else:
                print('no error')
                return 0/1
            
        except Exception as error:
            if attempt_no < (num_retries - 1):
                print(str(error))
            else:
                raise error
                
                
multi_try_function_call()
************* try time at 0*************
there is going to be error
division by zero
************* try time at 1*************
there is going to be error
division by zero
************* try time at 2*************
there is going to be error
division by zero
************* try time at 3*************
there is going to be error
division by zero
************* try time at 4*************
no error





0.0

英文链接

全栈程序员推荐,AI好书必读

在这里插入图片描述
北大出版社,人工智能原理与实践 人工智能和数据科学从入门到精通 详解机器学习深度学习算法原理

人工智能原理与实践 全面涵盖人工智能和数据科学各个重要体系经典

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值