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