python捕獲異常后繼續(xù)執(zhí)行問題
python捕獲異常后繼續(xù)執(zhí)行
最近寫爬蟲,發(fā)現獲取的URL鏈接中總會出現一些壞數據,即訪問后被拒絕,requests直接拋出異常,導致爬蟲中斷。
于是想找方法在捕獲異常后跳過異常URL繼續(xù)執(zhí)行程序
方法如下:
while True: try: r=requests.get(url,timeout=5) with open(path+'/'+name+".txt",'w') as myfile: myfile.write(r.content) myfile.close() except Exception as ex: template = "An exception of type {0} occurred. Arguments:\n{1!r}" message = template.format(type(ex).__name__, ex.args) print('\n'+message) break finally: break
首先外層一個死循環(huán),然后通過try……except捕獲異常。
捕獲后處理完異常,然后通過return或者break跳出循環(huán),繼續(xù)執(zhí)行程序。
注意最后的finally,意思是無論是否捕獲到異常都執(zhí)行后面的代碼,沒有則一條則無異常時會陷入死循環(huán)狀態(tài)
python使用logging捕獲異常后繼續(xù)執(zhí)行函數
使用python的logging模塊可以在捕獲異常后,記錄異常且不退出程序:
例子:
import logging logging.basicConfig( ? ? filename='new.log', ?# 打印寫入的文件 ? ? filemode='a', ) ?# 寫入日志的方法,a為追加,w為寫入 try: ? ? a = 1 / 0 except Exception as e: ? ? logging.exception(e) # 會把報錯的信息記錄下來 print('other program') # 繼續(xù)執(zhí)行其他錯誤
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Python實現讀取TXT文件數據并存進內置數據庫SQLite3的方法
這篇文章主要介紹了Python實現讀取TXT文件數據并存進內置數據庫SQLite3的方法,涉及Python針對txt文件的讀取及sqlite3數據庫的創(chuàng)建、插入、查詢等相關操作技巧,需要的朋友可以參考下2017-08-08pytorch/transformers?最后一層不加激活函數的原因分析
這里給大家解釋一下為什么bert模型最后都不加激活函數,是因為損失函數選擇的原因,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧2023-01-01pytorch Dataset,DataLoader產生自定義的訓練數據案例
這篇文章主要介紹了pytorch Dataset, DataLoader產生自定義的訓練數據案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03