python 中的異常處理

何為異常

在現(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)存回收

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 什么是異常? 異常即是一個(gè)事件,該事件會(huì)在程序執(zhí)行過(guò)程中發(fā)生,影響了程序的正常執(zhí)行。一般情況下,在Python無(wú)法...
    云Shen不知處閱讀 463評(píng)論 0 0
  • 1.異常是什么? 1.1異常 就是不正常的情況,程序開(kāi)發(fā)過(guò)程中錯(cuò)誤和bug都是不正常的情況 1.2異常發(fā)生的后果 ...
    已重復(fù)的昵稱閱讀 390評(píng)論 0 0
  • 高效的執(zhí)行力,我覺(jué)得我是具備的,自從參加工作都是扮演的執(zhí)行角色,也就是被支配的角兒,領(lǐng)導(dǎo)指哪兒打哪兒,一起工作的同...
    我們Teacher閱讀 3,815評(píng)論 0 2
  • 或許是因?yàn)槊總€(gè)人都是不同的,所以腦袋的想法做法也是不同的吧 特多會(huì)有那么幾個(gè)相似的吧! 為什么嘴里說(shuō)的頭頭是道,什...
    自命題閱讀 253評(píng)論 0 1
  • (原創(chuàng)) 年少雄心氣,如今志未酬。 人生難百歲,虛度四三秋。 疏云犁月碎,冰劍斬花柔。 英氣年輪磨,何談干斗牛。 ...
    淘金石閱讀 215評(píng)論 2 9

友情鏈接更多精彩內(nèi)容