我怎樣編寫一個同時捕獲所有 Python 異常的 try/except 塊?


儘管你可以使用以下程式碼捕獲所有異常,但一般經驗法則建議不要這樣做。

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

更新於: 2019 年 9 月 27 日

162 次瀏覽

職業起飛

完成課程即可獲得認證

開始
廣告
© . All rights reserved.