異常捕獲:
1.異常捕獲
正常情況下程序出現(xiàn)異常,程序會直接崩潰,不能接著往后執(zhí)行。
異常捕獲就是為了讓程序出現(xiàn)異常的時候不崩潰,自己處理異常
2.異常捕獲
1)語法一: try-except(可以捕獲所有異常)
try:
代碼塊1
except:
代碼塊2
其他語句
執(zhí)行過程: 先執(zhí)行代碼塊1,在執(zhí)行代碼塊1的過程中如果出現(xiàn)異常,程序不崩潰直接執(zhí)行代碼塊2。
如果沒有出現(xiàn)異常,不執(zhí)行代碼塊2直接執(zhí)行其他語句
————————————————————————————
2)語法二:
try:
代碼段1
except 異常類型:
代碼段2
執(zhí)行過程: 先執(zhí)行代碼段1,如果在執(zhí)行代碼塊1的過程中出現(xiàn)異常,檢查出現(xiàn)的異常類型是否和except后面的異常類型是否一致,
如果一致程序不崩潰,直接執(zhí)行代碼段2;如果不一致,程序直接崩潰。
如果沒有異常,直接執(zhí)行后面其他語句
————————————————————————————
3)語法三:
try:
代碼段1
except (異常類型1,異常類型2,...):
代碼段2
————————————————————————————
4)語法四:
try:
代碼塊1
except 異常類型1:
代碼塊2
except 異常類型2:
代碼塊2
...
————————————————————————————
5)上面的四種結構的最后都可以加上一個finally;不管try里面的代碼有沒有異常,異常有沒有被捕獲,
finally后面的代碼都會執(zhí)行。 一般可以在這個地方做一些數(shù)據(jù)的保存和備份操作!
try:
代碼塊1
except:
代碼塊2
finally:
代碼塊3
拋出異常: 主動讓程序崩潰:
- 語法:
raise 異常類型
注意:異常類型可以是系統(tǒng)自帶的,也可以是程序員自定義 (要求異常類型必須是Exception的子類)