python捕獲異常后繼續(xù)執(zhí)行問題
python捕獲異常后繼續(xù)執(zhí)行
最近寫爬蟲,發(fā)現(xiàn)獲取的URL鏈接中總會(huì)出現(xiàn)一些壞數(shù)據(jù),即訪問后被拒絕,requests直接拋出異常,導(dǎo)致爬蟲中斷。
于是想找方法在捕獲異常后跳過異常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
首先外層一個(gè)死循環(huán),然后通過try……except捕獲異常。
捕獲后處理完異常,然后通過return或者break跳出循環(huán),繼續(xù)執(zhí)行程序。
注意最后的finally,意思是無(wú)論是否捕獲到異常都執(zhí)行后面的代碼,沒有則一條則無(wú)異常時(shí)會(huì)陷入死循環(huán)狀態(tài)
python使用logging捕獲異常后繼續(xù)執(zhí)行函數(shù)
使用python的logging模塊可以在捕獲異常后,記錄異常且不退出程序:
例子:
import logging logging.basicConfig( ? ? filename='new.log', ?# 打印寫入的文件 ? ? filemode='a', ) ?# 寫入日志的方法,a為追加,w為寫入 try: ? ? a = 1 / 0 except Exception as e: ? ? logging.exception(e) # 會(huì)把報(bào)錯(cuò)的信息記錄下來(lái) print('other program') # 繼續(xù)執(zhí)行其他錯(cuò)誤
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
matlab、python中矩陣的互相導(dǎo)入導(dǎo)出方式
這篇文章主要介紹了matlab、python中矩陣的互相導(dǎo)入導(dǎo)出方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2020-06-06使用python對(duì)文件中的單詞進(jìn)行提取的方法示例
這篇文章主要介紹了使用python對(duì)文件中的單詞進(jìn)行提取的方法示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-12-12Python實(shí)現(xiàn)讀取TXT文件數(shù)據(jù)并存進(jìn)內(nèi)置數(shù)據(jù)庫(kù)SQLite3的方法
這篇文章主要介紹了Python實(shí)現(xiàn)讀取TXT文件數(shù)據(jù)并存進(jìn)內(nèi)置數(shù)據(jù)庫(kù)SQLite3的方法,涉及Python針對(duì)txt文件的讀取及sqlite3數(shù)據(jù)庫(kù)的創(chuàng)建、插入、查詢等相關(guān)操作技巧,需要的朋友可以參考下2017-08-08Pandas導(dǎo)入導(dǎo)出excel、csv、txt文件教程
Pandas?是一個(gè)強(qiáng)大的數(shù)據(jù)分析和處理庫(kù),可以用來(lái)讀取和處理多種數(shù)據(jù)格式,本文主要介紹了Pandas導(dǎo)入導(dǎo)出excel、csv、txt文件教程,具有一定的參考價(jià)值,感興趣的可以了解一下2024-04-04使用Python實(shí)現(xiàn)Mysql數(shù)據(jù)庫(kù)相關(guān)操作詳解
這篇文章主要介紹了使用Python實(shí)現(xiàn)Mysql數(shù)據(jù)庫(kù)相關(guān)操作詳解,pymysql是Python中操作數(shù)據(jù)庫(kù)的第三方模塊,通過這個(gè)模塊的相關(guān)方法,我們可以連接并且去操作mysql數(shù)據(jù)庫(kù),需要的朋友可以參考下2023-08-08echarts動(dòng)態(tài)獲取Django數(shù)據(jù)的實(shí)現(xiàn)示例
本文主要介紹了echarts動(dòng)態(tài)獲取Django數(shù)據(jù)的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08pytorch/transformers?最后一層不加激活函數(shù)的原因分析
這里給大家解釋一下為什么bert模型最后都不加激活函數(shù),是因?yàn)閾p失函數(shù)選擇的原因,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2023-01-01pytorch Dataset,DataLoader產(chǎn)生自定義的訓(xùn)練數(shù)據(jù)案例
這篇文章主要介紹了pytorch Dataset, DataLoader產(chǎn)生自定義的訓(xùn)練數(shù)據(jù)案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2021-03-03Python實(shí)現(xiàn)ping指定IP的示例
今天小編就為大家分享一篇Python實(shí)現(xiàn)ping指定IP的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2018-06-06