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