在python程序运行过程之中可能会因为很多不同的原因而导致异常出现,而有些时候异常出现只是因为一些微小的错误,在下次重新运行时就不会再出现了。所以本文会来分析一个python脚本和代码运行时发生异常自动重新执行的方法,往下看看学习吧。
一、retrying库
python第三方库retrying所实现的功能就是发生异常时会自动重新执行函数,因为该模块是作为装饰器去使用的,它必须要要放在函数上面才能够起作用。所以这也要求了需要捕获异常的代码得放在函数内才可以,而且该装饰器没有异常捕获功能,所以在函数内还需要自己去定义异常捕获语句才可以。
二、使用教程
使用retrying库不需要将它的全部模块以及方法都导入进来,只需要把retry()这个装饰器导入进来就可以了。虽然它是一个装饰器,但是本质上来说还是一个函数,可以通过传入参数来控制最大重试次数、重试时间以及重试间隔,下面的示例可以很明确的看出来,如下所示:
a=1 @retry(stop_max_attempt_number=3, stop_max_delay=2000, wait_fixed=500) def demo1(n): global a try: a+=1 e1() except Exception as e: print(e) raise TimeoutError
以上代码示例就是使用retry()这个装饰器去修饰函数demo1给它添加上了异常重试功能,而且是每隔0.5秒重试一次、重试的最大次数为3次、而程序发生异常之后总共可以重试的时间为2秒。需要注意以上装饰器函数内所有参数的单位都是毫秒,换算成秒为1000毫秒等于1秒。
以上就是关于“Python异常重试如何实现?Python运行发生异常怎么自动重新执行”的全部内容了,希望对你有所帮助。