何為異常
在現(xiàn)實(shí)生活中,我們都或多或少遇到過(guò)一些不正常的時(shí)候,這個(gè)時(shí)候就可以稱為人的“異?!绷?,人作為一個(gè)高等生物,也會(huì)有“異?!钡臅r(shí)候。一個(gè)程序在運(yùn)行的過(guò)程中難免也會(huì)出現(xiàn)異常,這種異常會(huì)導(dǎo)致程序功能的不正常,甚至導(dǎo)致程序崩潰,所以在程序開(kāi)發(fā)中,也要考慮到異常的情況,由此展開(kāi)到程序的異常處理
python 異常處理的方式
在python中異常處理方式分為兩中:
try - except(捕獲式)
assertions(斷言式)
在程序開(kāi)發(fā)中,我們通常使用捕獲式來(lái)解決程序異常
捕獲式處理異常語(yǔ)法
try:
可能出現(xiàn)異常的代碼
except(異常名稱):
一單出現(xiàn)異常執(zhí)行的代碼
else:
沒(méi)有異常時(shí)執(zhí)行的代碼
finally:
不論是否異常都執(zhí)行的代碼
如何用捕獲式處理多個(gè)異常
try:
可能出現(xiàn)異常的代碼
except (Excp1 [, Excp2, Excp3, Excp4…Excpn]):
上述任一異常出現(xiàn)之后要執(zhí)行的代碼
try:
可能出現(xiàn)異常的代碼
except Excp1:
出現(xiàn)Excp1異常之后執(zhí)行的代碼
except Excp2:
出現(xiàn)Excp1異常之后執(zhí)行的代碼
自定義異常
一門(mén)編程語(yǔ)言提供的信息錯(cuò)誤有限,而且晦澀難懂,所有就引入了自定義異常
1.異?!?一種對(duì)象
自定義異常 – 一種自定義類型
自定義類型[異常] – 參考標(biāo)準(zhǔn)異常(繼承Exception)—自定義異常(繼承Exception)
2.主動(dòng)拋出異常
在開(kāi)發(fā)的過(guò)程中,主動(dòng)出現(xiàn)一種錯(cuò)誤,將錯(cuò)誤拋出給程序告訴程序出錯(cuò)了。
通過(guò)raise關(guān)鍵字,拋出一個(gè)異常
3.自定義異常,就是為了專門(mén)拋出錯(cuò)誤的,拋出錯(cuò)誤,就是嚴(yán)重警告這里出現(xiàn)了什么問(wèn)題
首先-代碼執(zhí)行過(guò)程中,出現(xiàn)了異?!鞠到y(tǒng)標(biāo)準(zhǔn)異?!俊拘畔⒉皇呛苊靼住?br>
捕獲系統(tǒng)異常,創(chuàng)建一個(gè)自定義異常
拋出自定義異?!咀远x異?!俊拘畔⒚鞔_的錯(cuò)誤】
自定義異常的目的:
轉(zhuǎn)換異常信息,將不明確的異常信息轉(zhuǎn)換成更加精確的異常信息
轉(zhuǎn)換異常信息:異常的傳遞~傳遞更加明確的異常,給后面的代碼進(jìn)行處理!
finally
finally 語(yǔ)法作為程序是否異常都執(zhí)行的語(yǔ)句,在程序中一般作為資源回收使用
try:
f = open("d:/test.txt", "w")
f.write(["a", "b"])
except FileNotFoundError as e:
print("文件操作失敗")
finally:
f.close()
在這里程序執(zhí)行是夠正常都要進(jìn)行關(guān)閉文件的動(dòng)作,我們就可以使用finall語(yǔ)句進(jìn)行內(nèi)存回收