久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術(shù)文章
文章詳情頁

python 運行多個函數(shù),如何讓單個函數(shù)的報錯不影響其他函數(shù)的執(zhí)行

瀏覽:120日期:2022-08-16 10:37:32

問題描述

假設(shè)有 a , b , c 三個函數(shù)需要執(zhí)行,但是有可能會其中某個函數(shù)會報錯

最初的寫法是:

try: a() b() c()except: pass

這樣寫的問題是如果 b 報錯了,c 也不會執(zhí)行了,想到可以在函數(shù)內(nèi)部定義 try ,由此想到用裝飾器來搞:

def error(fun): def wrapped():try: fun()except: print(’這個函數(shù)出錯了:%s’ % fun.__name__) return wrapped@errordef a(): print( 1 / 0)@errordef b(): print(0 / 1) @errordef c(): print(’1111’)

這樣看問題勉強是解決了,但是每個函數(shù)頭上都頂個裝飾器,感覺有點二,所以問問有沒有更優(yōu)雅的實現(xiàn)方法

實際上的代碼是運行一堆爬蟲,每個爬蟲都是不同的網(wǎng)頁,有可能會報錯,但是我不想讓單個網(wǎng)頁的報錯影響到其他爬蟲的執(zhí)行

問題解答

回答1:

不知道你要的「更優(yōu)雅的實現(xiàn)方法」是什么。忽略所有函數(shù)的錯誤本來就很不優(yōu)雅了。

當(dāng)然你可以寫一個這種函數(shù):

import tracebackdef run_with_ignorance(*funcs): for f in funcs: try: f() except Exception: traceback.print_exc()

然后這么調(diào)用:

run_with_ignorance(a, b, c)

標簽: Python 編程
主站蜘蛛池模板: 贺州市| 盐边县| 师宗县| 南召县| 容城县| 库车县| 长岛县| 永安市| 当涂县| 曲松县| 象州县| 达拉特旗| 遵义市| 沂源县| 改则县| 涞源县| 陆河县| 湾仔区| 将乐县| 汤阴县| 孟连| 廊坊市| 罗源县| 鄢陵县| 孟州市| 黄山市| 收藏| 新平| 砀山县| 衡水市| 克什克腾旗| 南京市| 武川县| 高雄市| 江川县| 康平县| 宁南县| 南安市| 西和县| 内乡县| 棋牌|