如何編寫 try/except 塊以捕獲所有 Python 異常?
這雖然是通用經驗法則,即你可以像下面這樣使用程式碼捕獲所有異常,但你最好不要這樣
try: #do_something() except: print "Exception Caught!"
不過,這也會捕獲我們可能不想關注的異常,例如 KeyboardInterrupt。我們無法捕獲異常,除非我們立刻重新引發異常
try: f = open('file.txt') s = f.readline() i = int(s.strip()) except IOError as (errno, strerror): print "I/O error({0}): {1}".format(errno, strerror) except ValueError: print "Could not convert data to an integer." except: print "Unexpected error:", sys.exc_info()[0] raise
如果指令碼中沒有包含 file.txt,我們會得到類似下面的輸出。
I/O error(2): No such file or directory
廣告