1.異常捕獲
- 當(dāng)程序發(fā)生異常對的時候,默認(rèn)情況下程序會崩潰,不能接著往后執(zhí)行;捕獲異常就是讓程序發(fā)生異常的時候不崩潰,
能夠接著往后執(zhí)行。一般在知道代碼會出現(xiàn)異常,但又不能通過修改代碼去避免,這個時候就可以通過異常捕獲去處理異常
2.捕獲異常的語法
1)語法一:捕獲所以異常
try:
代碼段1
except:
代碼段2
說明:try, except - 關(guān)鍵字,固定寫法
代碼段1 - 需要捕獲異常的一條或者多條的語句
代碼段2 - 出現(xiàn)異常后會執(zhí)行的一條或者多條語句執(zhí)行過程:先執(zhí)行代碼段1,如果執(zhí)行代碼段1的時候出現(xiàn)異常,首先程序不崩潰,而是直接執(zhí)行代碼段2
如果代碼段1沒有出現(xiàn)異常,不會執(zhí)行代碼段2
語法二:
try:
代碼段1
except 異常類型:
代碼段2
執(zhí)行過程: 先執(zhí)行代碼段1,如果執(zhí)行代碼段1的時候出現(xiàn)異常,判斷異常的類型與except的異常類型是否一致,如果一致
程序不崩潰,直接執(zhí)行代碼段2,如果不一致,則程序崩潰3)語法三:
try:
代碼段1
except (異常類型1,異常類型2,....)
代碼段2
執(zhí)行過程: 先執(zhí)行代碼段1,如果執(zhí)行代碼段1的時候出現(xiàn)異常,判斷異常的類型與except的異常類型是否一致,如果一致
程序不崩潰,直接執(zhí)行代碼段2,如果不一致,則程序崩潰4)語法四:
try:
代碼段1
except 異常類型1:
代碼段11
except 異常類型2:
代碼段22
...
finally:
代碼段f
3.finally
- 捕獲異常的最后都可以添加一個finally,finally后面的代碼段f任何時候都會執(zhí)行
1)try后面的代碼段沒有出現(xiàn)異常,finally會執(zhí)行
2)try后面的代碼段出現(xiàn)異常被捕獲到,finally會執(zhí)行
3)try后面的代碼段出現(xiàn)異常沒有被捕獲到,finally會執(zhí)行
4.拋出異常
- 讓代碼在某種情況下主動崩潰:
raise 異常類型
異常捕獲1
try:
nums = [1, 3, 4]
print(nums[4])
except:
print('出現(xiàn)異常')