0
点赞
收藏
分享

微信扫一扫

python的异常处理:retry

retry是python中一个可以用来处理异常的包,借助于retry,对于出现问题的代码,我们可以再次运行。例如在使用在线服务时,我们不希望程序因为网络中断的原因而异常退出,这时候就可以使用retry模块进行处理,可以指定重新尝试的次数,也可以不断重试直到运行成功。

​如果我们有一段代码,里面有着不确定性因素,在运行出错时,我们希望重新运行,那么可以使用下面的方法:

@retry(stop_max_attempt_number=2)
def LoginPage()

上面这段代码会反复运行函数LoginPag(),直至运行成功。当然,我们也可以指定最大运行次数,当达到最大运行次数仍未运行成功时,程序将会退出:

@retry(stop_max_attempt_number=2)
def LoginPage()

上面我们指定了LoginPage()最多运行2次,即使没有运行成功,在达到2次后,程序也会退出

一、stop_max_attempt_number:在中止以前尝试的最大次数,最后一次若是仍是有异常则会抛出异常,中止运行,默认为5次;

二、stop_max_delay:好比设置成10000,那么从被装饰的函数开始执行的时间点开始,到函数成功运行结束或者失败报错停止的时间点,只要这段时间超过10秒,则中止重试(单位是毫秒)函数;

三、wait_fixed:设置在两次retrying之间的停留时间,单位毫秒post

四、wait_random_min和wait_random_max:用随机的方式产生两次retrying之间的停留时间。wait_random_min停留最短期,默认为0,单位毫秒。wait_random_max停留最长时间,默认为1000,单位毫秒url;

六、retry_on_result:指定一个函数,若是指定的函数返回True,则重试;不然抛出异常退出(指定要在获得哪些结果的时候去retry,retry_on_result传入一个函数对象,在执行get_result成功后,会将函数的返回值经过形参result的形式传入retry_if_result_none函数中,若是返回值是None那么就进行retry,不然就结束并返回函数值);

七、retry_on_exception: 指定一个函数,若是此函数返回指定异常,则会重试;若是不是指定的异常,否则就会退出。


举报

相关推荐

0 条评论