1.異常捕獲
"""
當(dāng)程序發(fā)生異常的時(shí)候杈女,默認(rèn)情況會(huì)崩潰验游,不能接著往后執(zhí)行借卧,
捕獲異常就是讓程序發(fā)生異常的時(shí)候不崩潰,能夠接著往后執(zhí)行
明明知道代碼會(huì)出現(xiàn)異常敦姻,但是又不能通過(guò)修改代碼取避免,這個(gè)時(shí)候就可以通過(guò)異常捕獲去處理異常歧杏。
"""
2.捕獲異常的語(yǔ)法
"""
1)語(yǔ)法1: - 捕獲所有的異常
try:
代碼段1
except:
代碼段2
說(shuō)明:try,except - 關(guān)鍵字
代碼段1 - 需要捕獲異常的一條或者多條語(yǔ)句的代碼
代碼段2 - 出現(xiàn)異常后會(huì)執(zhí)行的一條或者多條語(yǔ)句
執(zhí)行過(guò)程:先執(zhí)行代碼段1镰惦,如果執(zhí)行代碼段1的時(shí)候出現(xiàn)異常,程序不崩潰犬绒,直接執(zhí)行代碼段2
如果代碼段1沒(méi)出現(xiàn)異常旺入,不會(huì)執(zhí)行代碼段2,直接執(zhí)行后面的代碼
2)語(yǔ)法2
try:
代碼段1
except 異常類(lèi)型:
代碼塊2
執(zhí)行過(guò)程:先執(zhí)行代碼段1凯力,如果執(zhí)行代碼段1的時(shí)候出現(xiàn)異常茵瘾,判斷異常類(lèi)型和except后面的異常類(lèi)型是否一致
如果一致的程序不崩潰,直接執(zhí)行代碼段2咐鹤,如果不一致拗秘,程序直接崩潰
3)語(yǔ)法3
try:
代碼段1
except:
代碼段2(異常類(lèi)型1,異常類(lèi)型2祈惶,……)
4)語(yǔ)法4
try:
代碼段1
except 異常類(lèi)型1:
代碼段2
except 異常類(lèi)型2:
代碼段3
……
finally:
代碼段f
# 語(yǔ)法1的例子
try:
nums = [1, 2, 3, 4]
print(nums[5])
except:
print('出現(xiàn)異常')
# 語(yǔ)法2的例子
nums = {'name': '小明', 'age': 18, 'gender': '男'}
try:
print(nums[4])
print('====')
except KeyError:
print('出現(xiàn)錯(cuò)誤的異常
3.finally:
"""
捕獲異常的最后都可以添加一個(gè)finally,后面的代碼塊雕旨,任何情況都會(huì)執(zhí)行。
1)try后面的代碼段么有出現(xiàn)異常捧请,finally會(huì)執(zhí)行
2)try后面的代碼段出現(xiàn)異常被捕獲到凡涩,finally會(huì)執(zhí)行
3)try后面的代碼段出現(xiàn)異常沒(méi)有被捕獲到,finally會(huì)執(zhí)行疹蛉,程序崩潰
"""
4.拋出異常 raise
"""
讓代碼在某種情況下主動(dòng)崩潰:
raise 異常類(lèi)型
"""