2016-12-06 95 views
0

在Python中,是否有任何(適當的)方法來更改默認的異常處理行爲,以便任何未捕獲的異常將終止/退出程序?Python:使異常「退出」

我不想在一個通用的try-except塊來包裝整個節目:

try: 
    // write code here 
except Exception: 
    sys.exit(1) 

對於那些要求更高的特異性和/或聲稱這已經是這樣了,這是我的理解是不所有的Python例外的是系統出射:docs

編輯:它看起來像我已付出複雜的問題,以便進程不會被張貼有關我自己惹的任何具體細節。

如果你正在尋找的答案,原來的問題,梅德的評論是有趣和有用的,引用的第二個答案this question

+1

未捕獲的異常已經做到了。你可以說得更詳細點嗎? – TigerhawkT3

+0

異常已經終止程序,如果你沒有明確捕獲 –

+1

http://stackoverflow.com/questions/6598053/python-global-exception-handling,第二個答案 –

回答

0

可以使用特例,而不是例外,因爲異常是一個基類所有例外。欲瞭解更多詳情,請參閱Exception tutorial

您可以編寫腳本喜歡這個 -

try: 
    # write code here 
except OverflowError: 
    raise SystemExit 
except ArithmeticError: 
    sys.exit() 
except IOError: 
    quit() 

試試這個不同的方法來發現究竟是什麼你錯過。

編輯1 - 維護程序執行

爲了保持你的程序執行試試這個單

考慮error_handler功能是提高SystemExit例外,然後在你的主要方法,你需要下面的代碼添加使你可以維護你的程序執行。

try: 
    error_handler() 
except SystemExit: 
    print "sys.exit was called but I'm proceeding anyway (so there!-)."