python如何吞任何形式的異常?
問題描述
經(jīng)常看到有些模塊,任何異常都不會崩潰,然后還是繼續(xù)運行代碼,自己試過在程序最外面加上try ----catch----但是好像并不能把所有錯誤信息都吞了,好像只對塊內(nèi)代碼起作用,要是跳到另外的方法仍然會拋出異常,那種吞異常的是怎么寫的呀?我現(xiàn)在有個需求要求代碼一直跑。即使有異常也不能退出。。。請教各位大神指點
問題解答
回答1:這需要封裝一個框架,然而你所描述的任何錯誤都繼續(xù)運行。這種要求是你假設(shè)即使有錯誤也不影響程序的運行結(jié)果,那么這就意味著你自己能夠控制錯誤的范圍,如果這種錯誤發(fā)生的概率很大并且并不是致命的,你希望通過在主線程捕獲,任何異常最終通過程序入口拋出。所以你應(yīng)該是在程序運行啟動塊進行捕獲。
try: main()except: pass
這種方式當出現(xiàn)異常是也會退出,如果希望再繼續(xù)嘗試。可以加一個循環(huán)
while time_out < max_time_out: try:main() except:passtimeout+=100
但這種方式必須你自己非常清楚程序在若干次嘗試后能夠正常,否則還是會退出。最后我想說的是,程序因為異常掛掉是提醒你真的應(yīng)該去修復(fù)而不是忽略。如果忽略可以繼續(xù)運行但是帶來了錯誤的結(jié)果,你將后悔不已~
回答2:應(yīng)該是
try....except
另外你在最外層加try..except,當程序出錯后,只會在最外層捕捉到錯誤,然后就退出了,我有一個辦法,不過出錯后只能重頭開始(最好找到出錯的地方)
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()
相關(guān)文章:
1. javascript - sublime快鍵鍵問題2. javascript - immutable配合react提升性能?3. Apache 已經(jīng)把網(wǎng)站根目錄的改為allow from all了,但是服務(wù)器還是不能訪問?4. javascript - 移動端上不能實現(xiàn)拖拽布局嗎?5. 實現(xiàn)bing搜索工具urlAPI提交6. vue.js - Vue 如何像Angular.js watch 一樣監(jiān)聽數(shù)據(jù)變化7. javascript - nodejs關(guān)于進程間發(fā)送句柄的一點疑問8. phpstudy8.1支持win11系統(tǒng)嗎?9. 如何解決Centos下Docker服務(wù)啟動無響應(yīng),且輸入docker命令無響應(yīng)?10. css - 寫頁面遇到個布局問題,求大佬們幫解答,在線等,急!~

網(wǎng)公網(wǎng)安備