首頁技術(shù)文章正文

Python添加try和except分支結(jié)構(gòu)處理異常

更新時(shí)間:2022-06-16 來源:傳智教育 瀏覽量:

盡管程序開發(fā)人員在編寫程序時(shí)會(huì)盡可能地考慮實(shí)際應(yīng)用時(shí)出現(xiàn)的問題,但仍難避免因不規(guī)范操作導(dǎo)致的運(yùn)行錯(cuò)誤。例如程序01_calc.py中使用eval()函數(shù)處理與計(jì)算變量numl和num2接收的內(nèi)容,理論上numl和num2應(yīng)接收表示數(shù)值的字符串,然而用戶的實(shí)際輸入可能各式各樣,此時(shí)程序?qū)⒁蝈e(cuò)誤而崩潰,具體如下所示:
numl=itcast
num2=3
Traceback (most recent call last):
  File "test.py", line 4, in <module>
    sum = eval (numl) +eval (nun2)
  File "<string>", line 1, in <module>
NameError: name 'itcast' is not defined
以上展示的由于輸入與預(yù)期不匹配造成的錯(cuò)誤有很多種可能,編寫程序時(shí)很難逐一列舉進(jìn)行判斷,為了保證程序能夠穩(wěn)定運(yùn)行,編程語言一般都會(huì)提供異常處理語句,幫助程序捕獲、控制與處理異常。

Python語言使用保留字try和except組合成的分支結(jié)構(gòu)以處理異常,此種分支結(jié)構(gòu)的語法格式如下: 

try:
  代碼段1
except:
  代碼段2

以上語法格式中的代碼段1是需要捕獲異常的語句,以及未出現(xiàn)異常時(shí)程序?qū)?zhí)行的語句;代碼段2是出現(xiàn)異常時(shí)程序?qū)?huì)執(zhí)行的語句。下面修改程序01_calc.py,在其中添加異常處理結(jié)構(gòu)。修改后的程序如下:

#20_calc_try.py
try:
   numl = input("numl=")
   num2 = input("num2=")
   sum = eval (numl) + eval (num2)
   differ = eval (numl) - eval (num2)
   print("sum=%d,differ=%d"% (sum,differ))
except:
   print("程序異常退出。")

以上程序執(zhí)行后若出現(xiàn)錯(cuò)誤,將會(huì)執(zhí)行第9行代碼,打印“程序異常退出。”。程序執(zhí)行后分別輸入123和test,執(zhí)行結(jié)果具體如下所示:

num1=129
num2=test
程序異常退出。

異常處理結(jié)構(gòu)可以處理程序中出現(xiàn)的多種異常,包括輸入異常、運(yùn)行異常等。合理利用異常處理結(jié)構(gòu),有助于提高程序的穩(wěn)定性。






分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!