国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

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

python如何吞任何形式的異常?

瀏覽:124日期:2022-07-31 16:56:07

問題描述

經(jīng)常看到有些模塊,任何異常都不會崩潰,然后還是繼續(xù)運(yùn)行代碼,自己試過在程序最外面加上try ----catch----但是好像并不能把所有錯(cuò)誤信息都吞了,好像只對塊內(nèi)代碼起作用,要是跳到另外的方法仍然會拋出異常,那種吞異常的是怎么寫的呀?我現(xiàn)在有個(gè)需求要求代碼一直跑。即使有異常也不能退出。。。請教各位大神指點(diǎn)

問題解答

回答1:

這需要封裝一個(gè)框架,然而你所描述的任何錯(cuò)誤都繼續(xù)運(yùn)行。這種要求是你假設(shè)即使有錯(cuò)誤也不影響程序的運(yùn)行結(jié)果,那么這就意味著你自己能夠控制錯(cuò)誤的范圍,如果這種錯(cuò)誤發(fā)生的概率很大并且并不是致命的,你希望通過在主線程捕獲,任何異常最終通過程序入口拋出。所以你應(yīng)該是在程序運(yùn)行啟動(dòng)塊進(jìn)行捕獲。

try: main()except: pass

這種方式當(dāng)出現(xiàn)異常是也會退出,如果希望再繼續(xù)嘗試。可以加一個(gè)循環(huán)

while time_out < max_time_out: try:main() except:passtimeout+=100

但這種方式必須你自己非常清楚程序在若干次嘗試后能夠正常,否則還是會退出。最后我想說的是,程序因?yàn)楫惓斓羰翘嵝涯阏娴膽?yīng)該去修復(fù)而不是忽略。如果忽略可以繼續(xù)運(yùn)行但是帶來了錯(cuò)誤的結(jié)果,你將后悔不已~

回答2:

應(yīng)該是

try....except

另外你在最外層加try..except,當(dāng)程序出錯(cuò)后,只會在最外層捕捉到錯(cuò)誤,然后就退出了,我有一個(gè)辦法,不過出錯(cuò)后只能重頭開始(最好找到出錯(cuò)的地方)

import sysdef main(): print(1) int(’s’)def main1(): print(2) while True:try: main()except KeyboardInterrupt: sys.exit()except Exception: passif __name__ == ’__main__’: main1()

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 马边| 桐庐县| 育儿| 南丰县| 库尔勒市| 行唐县| 合江县| 巧家县| 金寨县| 鸡泽县| 娄底市| 建宁县| 彝良县| 忻城县| 侯马市| 阿拉善盟| 大厂| 宁城县| 和田县| 乐亭县| 广河县| 河津市| 化隆| 鄯善县| 清远市| 桦南县| 隆化县| 普定县| 潍坊市| 湄潭县| 五家渠市| 大埔县| 偏关县| 衡水市| 东兴市| 磐石市| 武平县| 梁平县| 宜阳县| 上虞市| 东山县|