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