python異常處理

異常類型的文章鏈接:https://www.cnblogs.com/nmb-musen/p/10856023.html

異常捕獲的語(yǔ)法

1,try/except語(yǔ)句用來(lái)檢測(cè)try語(yǔ)句塊中的錯(cuò)誤,從而讓except語(yǔ)句捕獲異常信息并處理
2,一個(gè)try語(yǔ)句可以對(duì)應(yīng)多個(gè)expect語(yǔ)句,但只能對(duì)應(yīng)一個(gè)finally子句,或是一個(gè)try-expect-finally復(fù)合語(yǔ)句
3,可以使用try-expect語(yǔ)句監(jiān)測(cè)和處理異常,也可以添加一個(gè)可選的else子句處理沒(méi)有監(jiān)測(cè)到異常時(shí)的執(zhí)行代碼
4,finally 是不管有無(wú)錯(cuò)誤,都會(huì)執(zhí)行的代碼。一般用來(lái)做清除工作

常見(jiàn)的錯(cuò)誤類型

1,ValueError:傳入無(wú)效的參數(shù)
2,ZeroDivisionError :除數(shù)為0(任何一個(gè)數(shù)值被零除都會(huì)引發(fā)此錯(cuò)誤)
3,ModuleNotFoundError :找不到模塊
4,TypeError : 對(duì)類型無(wú)效的操作
5,AssertionError : 斷言失敗
6,NameError :變量未聲明或初始化
7,SyntaxError:python解釋器語(yǔ)法錯(cuò)誤(代碼中有一個(gè)不正確的結(jié)構(gòu),改正之前程序無(wú)法運(yùn)行)
8,IndexError:請(qǐng)求的索引超出范圍
9,KeyError:請(qǐng)求一個(gè)不存在的字典關(guān)鍵字
10,F(xiàn)ileNotFoundError:輸入/輸出錯(cuò)誤(打開文件路徑錯(cuò)誤會(huì)引發(fā)此錯(cuò)誤)
11,AttributeError:嘗試訪問(wèn)未知的對(duì)象屬性

下面一個(gè)是一個(gè)簡(jiǎn)單的異常處理的例子

 num = input("請(qǐng)輸入一個(gè)數(shù)字:") 
 res = 100 / int(num)
 try:
     res = 100 / int(num)
 except: # try里面的語(yǔ)句報(bào)錯(cuò)了,執(zhí)行except
     # 你抓到了異常,你自己額外添加的處理
     print("輸入有誤,請(qǐng)輸入非0的數(shù)字!")
     # 你處理完了之后,把錯(cuò)誤又拋出給python解釋器
     raise
 else: # try里面的語(yǔ)句沒(méi)報(bào)錯(cuò),執(zhí)行else
     print(res)
 finally:
     # 不管try里面有沒(méi)有報(bào)錯(cuò)。最后一定會(huì)執(zhí)行的代碼。
     print("我是一定要執(zhí)行的收尾代碼!")

如果知道會(huì)出現(xiàn)哪些錯(cuò)誤,可以針對(duì)不同的錯(cuò)誤做不同的處理

 try:
     res = 100 / int(num)
 except ZeroDivisionError as e: # try里面的語(yǔ)句報(bào)錯(cuò)了
     # 你抓到了異常,你自己額外添加的處理
     print("輸入有誤!請(qǐng)輸入非0的數(shù)字!")
     print(e)
     # 你處理完了之后,把錯(cuò)誤又拋出給python解釋器
     raise
 except ValueError as e:
     # 抓到異常,額外添加的處理。這里沒(méi)有 raise 表示不顯示異常
     print("輸入有誤!請(qǐng)輸入數(shù)字類型!")
     print(e)      
 except Exception as e:
     print("其它未知錯(cuò)誤")
     print(e)
最后編輯于
?著作權(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)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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