我們可以使用三種方法來處理多個異常。
第一種方法需要把所有可能發(fā)生的異常放到一個元組里。像這樣:
try:
file = open('test.txt', 'rb')
except (IOError, EOFError) as e:
print("An error occurred. {}".format(e.args[-1]))
另外一種方式是對每個單獨的異常在單獨的except
語句塊中處理。我們想要多少個except
語句塊都可以。這里是個例子:
try:
file = open('test.txt', 'rb')
except EOFError as e:
print("An EOF error occurred.")
raise e
except IOError as e:
print("An error occurred.")
raise e
上面這個方式中,如果異常沒有被第一個except
語句塊處理,那么它也許被下一個語句塊處理,或者根本不會被處理。
現(xiàn)在,最后一種方式會捕獲所有異常:
try:
file = open('test.txt', 'rb')
except Exception:
# 打印一些異常日志,如果你想要的話
raise
當你不知道你的程序會拋出什么樣的異常時,上面的方式可能非常有幫助。