欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python用Try語句捕獲異常的實(shí)例方法

 更新時(shí)間:2019年06月26日 16:10:51   作者:Ma_Qiao2020  
在本篇文章中小編給大家整理了關(guān)于Python用Try語句如何捕獲異常的相關(guān)知識(shí)點(diǎn)內(nèi)容,需要的朋友們參考下。

python的異常,以及用try復(fù)合語句處理異常。

運(yùn)行代碼時(shí)有時(shí)會(huì)出現(xiàn)各種各樣的錯(cuò)誤,致使解析器中斷執(zhí)行,并提示xxxxxxErorr的提示,后面跟具體的錯(cuò)誤的描述,這被稱為是引發(fā)了異常。

其實(shí)異常告訴我們的是遇到了什么類型的錯(cuò)誤。xxxxErorr就是python內(nèi)置的異常類型。每一種異常類型,都有它自己的錯(cuò)誤信息。

有一種比較容易辨識(shí),容易處理的錯(cuò)誤,語法錯(cuò)誤:SyntaxError

是由于寫代碼時(shí)的語法錯(cuò)誤,大部分的解析器都會(huì)提前提示,像pycharm,在書寫時(shí)如果語法錯(cuò)誤,都會(huì)有波浪線提示。語法上的錯(cuò)誤很好處理,類似與寫文章寫錯(cuò)字了,改正就行了。

如何處理異常:

除了語法錯(cuò)誤能輕松搞定,其他有些異常類型不影響代碼的功能,而又不想讓異常中斷執(zhí)行時(shí),就要對(duì)異常進(jìn)行處理,而不讓他中斷程序:

例如:有一個(gè)字典personDetail={"name":“光頭強(qiáng)”}里邊是光頭強(qiáng)的資料,想取到它的資料,但具體都有什么資料我們不知道,如果輸入的鍵不存在就會(huì)引發(fā)異常而中斷執(zhí)行。致使后面的代碼也為無法執(zhí)行。

那么就要捕獲這些異常,繞過它,能讓下面的代碼繼續(xù)運(yùn)行。python提供了try語句來實(shí)現(xiàn)這些功能。

語法:

try:
可能發(fā)生異常的代碼
except 異常類型:
捕獲的異常后要執(zhí)行的代碼

try 語句的工作原理如下。

1)執(zhí)行 try 子句時(shí)如果沒有異常發(fā)生,則跳過 except 子句并完成 try 語句的執(zhí)行。

2)如果在執(zhí)行try 子句時(shí)發(fā)生了異常,則跳至except子句。

3)執(zhí)行 except 子句 ,如果引發(fā)異常的類型和 except 關(guān)鍵字后面的異常匹配,就是捕獲了異常,執(zhí)行except子句。

例如:

gtqDict={"Name":"光頭強(qiáng)","Age":34,"Gender":"男"
try:
 print(gtqDict["Weight"])
except KeyError:
 print("Weight不存在,繼續(xù)走"
print(gtqDict["Age"])
print(gtqDict["Gender"])

 

例子不管weight是否存在,都能使得程序完。

捕獲多個(gè)異常

有時(shí)不確定會(huì)發(fā)生哪種異常,就把異常類型以元組的形式組包統(tǒng)統(tǒng)放在except后面,來匹配可能發(fā)生的異常:

比如:要打印光頭強(qiáng)年齡的Age鍵,不確定這個(gè)鍵是否存在,就用KeyErorr,不確定會(huì)不會(huì)發(fā)生鍵名是否正確,就用NameErorr。

例如:

gtqDict={"Name":"光頭強(qiáng)","Age":34,"Gender":"男"
try:
 print(gtqDict["age"])
except (KeyError,KeyError):
 print("age錯(cuò)誤"
print(gtqDict["Name"])
print(gtqDict["Gender"])

 

捕獲異常的描述信息:可以將異常的具體描述打印出來,以供參考。

try:可能發(fā)生異常的代碼

except (KeyError,KeyError) as 信息變量:

print(信息變量)

例如:

gtqDict={"Name":"光頭強(qiáng)","Age":34,"Gender":"男"}
try:
 print(gtqDict["Weight"])
except (KeyError,KeyError) as e:
 print(type(e),e)
print(gtqDict["Name"])
print(gtqDict["Gender"])

捕獲所有異常

前面提過,引發(fā)異常的xxxxErorr都是python異常的類型。python中所有異常類型都是基類Exception的派生類。

那么在寫代碼的時(shí)候不用指定異常的具體類型,只要捕獲基類就等于捕獲了所有的異常,但輸出的是具體的異常信息,這很有利于在大范圍內(nèi)找到具體的錯(cuò)誤。

語法:

try:可能發(fā)生異常的代碼

except Excepthon as 信息變量:

print(信息變量)

例如:

gtq="光頭強(qiáng)"
try:
 print(name)
except Exception as e:
 print(type(e),e
print("gtq")

---<class 'NameError'> name 'name' is not defined

---gtq

異常里的else子句

else子句是可選的,如果使用,必須放在所有的except子句之后。

它是在try子句沒有發(fā)生異常的情況執(zhí)行。

例如:

gtq="光頭強(qiáng)"
try:
 name=gtq
except Exception as e:
 print(type(e),e)
else:
 print("%s是一個(gè)伐木工人"%name)

finally子句: 寫在try語句的最后。

不管 try 子句里面是否有異常,finally 子句都會(huì)執(zhí)行。

例如:

gtq="光頭強(qiáng)"
try:
 name=GTQ
except Exception as e:
 print(type(e),e)
else:
 print("%s是一個(gè)伐木工人"%name)
finally:
 print("調(diào)用資料結(jié)束")

---<class 'NameError'> name 'GTQ' is not defined

---調(diào)用資料結(jié)束

相關(guān)文章

  • python爬蟲基礎(chǔ)知識(shí)點(diǎn)整理

    python爬蟲基礎(chǔ)知識(shí)點(diǎn)整理

    在本篇文章里小編給大家整理的是一篇關(guān)于python爬蟲基礎(chǔ)知識(shí)點(diǎn)整理內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2020-06-06
  • PyCharm GUI界面開發(fā)和exe文件生成的實(shí)現(xiàn)

    PyCharm GUI界面開發(fā)和exe文件生成的實(shí)現(xiàn)

    這篇文章主要介紹了PyCharm GUI界面開發(fā)和exe文件生成,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • 將自己的Python包發(fā)布到PyPI上的教程詳解

    將自己的Python包發(fā)布到PyPI上的教程詳解

    在Python中我們經(jīng)常使用pip來安裝第三方Python軟件包,其實(shí)我們每個(gè)人都可以免費(fèi)地將自己寫的Python包發(fā)布到PyPI上,本文小編就來教教大家如何將自己的Python包發(fā)布到PyPI上吧
    2023-09-09
  • Python單元測(cè)試框架unittest使用方法講解

    Python單元測(cè)試框架unittest使用方法講解

    這篇文章主要介紹了Python單元測(cè)試框架unittest使用方法講解,本文講解了unittest概述、命令行接口、測(cè)試案例自動(dòng)搜索、創(chuàng)建測(cè)試代碼、構(gòu)建測(cè)試套件方法等內(nèi)容,需要的朋友可以參考下
    2015-04-04
  • python進(jìn)階教程之詞典、字典、dict

    python進(jìn)階教程之詞典、字典、dict

    這篇文章主要介紹了python進(jìn)階教程之詞典、字典、dict,說了好幾個(gè)詞最官方的應(yīng)該是字典,英文dict,本文就是專注講解字典的,需要的朋友可以參考下
    2014-08-08
  • Python使用CRC32實(shí)現(xiàn)校驗(yàn)文件

    Python使用CRC32實(shí)現(xiàn)校驗(yàn)文件

    CRC文件校驗(yàn)是一種用于驗(yàn)證文件完整性的方法,通過計(jì)算文件的CRC值并與預(yù)先計(jì)算的CRC校驗(yàn)值進(jìn)行比較,來判斷文件是否發(fā)生變化,本文我們就來介紹一下Python如何利用CRC32實(shí)現(xiàn)校驗(yàn)文件吧
    2023-10-10
  • 使用tensorflow實(shí)現(xiàn)線性回歸

    使用tensorflow實(shí)現(xiàn)線性回歸

    這篇文章主要為大家詳細(xì)介紹了使用tensorflow實(shí)現(xiàn)線性回歸,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • 在CMD命令行中運(yùn)行python腳本的方法

    在CMD命令行中運(yùn)行python腳本的方法

    今天小編就為大家分享一篇在CMD命令行中運(yùn)行python腳本的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Requests庫實(shí)現(xiàn)數(shù)據(jù)抓取與處理功能

    Requests庫實(shí)現(xiàn)數(shù)據(jù)抓取與處理功能

    本文介紹了Python中常用的第三方庫Requests的基本用法和高級(jí)功能,我們學(xué)習(xí)了如何發(fā)起HTTP請(qǐng)求、處理響應(yīng)、使用會(huì)話對(duì)象、設(shè)置代理和證書驗(yàn)證等技巧,需要的朋友可以參考下
    2023-05-05
  • Python實(shí)現(xiàn)暴力破解有密碼的zip文件的方法

    Python實(shí)現(xiàn)暴力破解有密碼的zip文件的方法

    這篇文章主要介紹了Python實(shí)現(xiàn)暴力破解有密碼的zip文件的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03

最新評(píng)論