在編程的時(shí)候,我們難免會(huì)遇到一些不可靠的情況,比如網(wǎng)絡(luò)請(qǐng)求失敗,數(shù)據(jù)庫(kù)連接超時(shí)等等。這些不確定性會(huì)讓我們的程序容易出現(xiàn)各種錯(cuò)誤和異常。那么如何來(lái)增加程序的容錯(cuò)性和健壯性呢?
可能大多數(shù)人會(huì)想到使用try except來(lái)進(jìn)行異常捕捉進(jìn)行失敗重試(Retry)。雖然try-escept一個(gè)非常常見和有效的方式來(lái)增強(qiáng)程序穩(wěn)定性,但是可能一不小心就會(huì)造成棧溢出。
所以接下來(lái)我就來(lái)介紹一個(gè)另外的一個(gè)專門用于失敗重試的庫(kù):retrying
。
定義
在Python生態(tài)中,retrying庫(kù)提供了非常便捷的裝飾器和函數(shù)來(lái)幫助我們輕松添加失敗重試機(jī)制。它可以自定義重試策略、停止條件、等待間隔等,對(duì)各種異常進(jìn)行捕捉處理。使用retrying可以大大減少我們重復(fù)編寫失敗重試輪詢的代碼量。
下載retrying
pip install retrying
無(wú)參數(shù)重試
我們可以直接在函數(shù)上使用裝飾器@retry
來(lái)進(jìn)行失敗重試
import retrying
@retry
def func():
for item in range(0,100):
result=item / 0
print(result)
return result
func()
但是這種方式并不建議使用,就像上面的代碼,我們都知道0作為除數(shù)就會(huì)報(bào)錯(cuò),在上面的func函數(shù)中,因?yàn)榧恿?code>@retry裝飾器進(jìn)行失敗重試,這樣就就會(huì)進(jìn)入一個(gè)死循環(huán)一直失敗一直重試。
所以我們?cè)谶M(jìn)行失敗重試的時(shí)候最好是需要加上一些參數(shù)來(lái)限制失敗重試。
-
編程
+關(guān)注
關(guān)注
88文章
3689瀏覽量
95289 -
數(shù)據(jù)庫(kù)
+關(guān)注
關(guān)注
7文章
3929瀏覽量
66304 -
python
+關(guān)注
關(guān)注
56文章
4827瀏覽量
86830
發(fā)布評(píng)論請(qǐng)先 登錄
【建議收藏】Python庫(kù)大全
自定義Python PyPI存儲(chǔ)庫(kù)
關(guān)于《Python編程入門系列教程》說(shuō)明及教程匯總
詳解Python中的Pandas和Numpy庫(kù)
關(guān)于python中非常實(shí)用的一個(gè)圖像處理庫(kù) 1
關(guān)于python中非常實(shí)用的一個(gè)圖像處理庫(kù) 2
如何安裝常用Python庫(kù)
Python中telnetlib模塊的基本使用
TSMaster小功能—Python小程序如何導(dǎo)入外部庫(kù)

python有什么用 如何用python創(chuàng)建數(shù)據(jù)庫(kù)
python讀取數(shù)據(jù)庫(kù)數(shù)據(jù) python查詢數(shù)據(jù)庫(kù) python數(shù)據(jù)庫(kù)連接
Python庫(kù)中oloredlogs的使用

Python中retrying庫(kù)的有參數(shù)重試

評(píng)論