Python異常的檢測(cè)和處理方法
捕獲異常
# 對(duì)數(shù)字變量使用append操作 a = 123 a.apppend(4)
執(zhí)行這個(gè)程序時(shí),會(huì)拋出:
AttributeError: 'int' object has no attribute 'apppend'
我們使用try:except語(yǔ)句進(jìn)行捕獲。
# 捕獲異常 a = 123 try: a.apppend(4) except AttributeError: print("數(shù)字類型不能使用append操作")
輸出結(jié)果如下:
數(shù)字類型不能使用append操作
捕獲多個(gè)異常
# 捕獲異常 a = 123 try: # a.apppend(4) print(1/0) except AttributeError: print("數(shù)字類型不能使用append操作") except ZeroDivisionError: print("0不能作為除數(shù)")
輸出結(jié)果:
0不能作為除數(shù)
當(dāng)然也可以類似JDK1.7那樣,把異常放置到一起。
# 捕獲異常 a = 123 try: a.apppend(4) # print(1/0) except (AttributeError,ZeroDivisionError) as e: print("出現(xiàn)錯(cuò)誤 %s" %e)
把異常類型放置到一個(gè)元祖里面,如果想打印具體的異常信息,可以將異常信息重新命名,然后打印出來(lái)。
輸出結(jié)果如下:
出現(xiàn)錯(cuò)誤 'int' object has no attribute 'apppend'
使用Exception捕獲所有異常
# 捕獲異常 a = 123 try: print(1/'kk') except Exception as e: print("出現(xiàn)錯(cuò)誤 %s" %e)
統(tǒng)一用Exception
進(jìn)行捕獲,輸出結(jié)果如下:
出現(xiàn)錯(cuò)誤 unsupported operand type(s) for /: 'int' and 'str'
自定義異常
# 捕獲異常 a = 123 try: if a == 123: raise NameError("a是不能等于123的哦") except NameError as e: print("出現(xiàn)錯(cuò)誤 %s" %e)
可以使用raise關(guān)鍵字和NameError,輸出結(jié)果如下:
出現(xiàn)錯(cuò)誤 a是不能等于123的哦
finally語(yǔ)句
try: print(1/0) except Exception as e: print("出現(xiàn)錯(cuò)誤 %s" %e) finally: print("執(zhí)行finally")
執(zhí)行結(jié)果如下:
出現(xiàn)錯(cuò)誤 division by zero 執(zhí)行finally
說(shuō)明就算拋出了一次,finally語(yǔ)句仍然會(huì)被執(zhí)行。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
相關(guān)文章

python編程測(cè)試電腦開(kāi)啟最大線程數(shù)實(shí)例代碼

Python實(shí)現(xiàn)監(jiān)控內(nèi)存使用情況和代碼執(zhí)行時(shí)間

Python?matplotlib如何簡(jiǎn)單繪制不同類型的表格

用python畫(huà)個(gè)奧運(yùn)五環(huán)(附完整代碼)

Python開(kāi)發(fā)的HTTP庫(kù)requests詳解