一. 異常
程序在運行過程中的報錯就叫異常
二. 異常捕獲
1. 使用異常捕獲的場景
在知道某個位置可能會出現(xiàn)異常,但開發(fā)者無法控制時使用
2. 捕獲異常
①:捕獲任何異常
"""
try:
代碼塊一(可能出現(xiàn)異常的代碼)
except:
代碼塊二(對異常進行處理)
finally:
代碼塊三
其他語句
"""
- 先執(zhí)行代碼塊1,如果異常,直接執(zhí)行代碼塊2,依次往后執(zhí)行;若代碼塊1沒有異常,不執(zhí)行代碼塊2,往后執(zhí)行
②:捕獲針對異常
"""
try:
代碼塊一(可能出現(xiàn)異常的代碼)
except 異常類型:
代碼塊二(對異常進行處理)
其他語句
"""
- 先執(zhí)行代碼塊1,如果異常,檢查該異常是否和except后的異常類型是否一致若一致,執(zhí)行代碼塊2,依次往后執(zhí)行;若不一致,程序崩潰.
③:捕獲多個異常一(相同處理)
"""
try:
代碼塊一(可能出現(xiàn)異常的代碼)
except (異常類型1, 異常類型2...):
代碼塊二(對異常進行處理)
其他語句
"""
④:捕獲多個異常一(不同處理)
"""
try:
代碼塊一(可能出現(xiàn)異常的代碼)
except (異常類型1):
代碼塊二(對異常進行處理)
except (異常類型2):
代碼塊三(對異常進行處理)
except (異常類型3):
代碼塊四(對異常進行處理)
...
其他代碼
"""
三. 關(guān)鍵字finally
在以上四個捕獲異常的方法中都可以在最后加上finally關(guān)鍵字,它的作用是:不管try中的代碼出現(xiàn)任何情況,finally后的代碼都會執(zhí)行
try:
print({'name': 'an', 'age': 29}['gender'])
print('hello'[19])
print(max([10, 'asd', True]))
except IndexError:
print('出現(xiàn)異常')
finally:
print('寫遺書')