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