白嫩娇妻被交换经过_被弄出白浆喷水了视频_亚洲依依成人_小蝌蚪视频污下载

當(dāng)前位置: 首頁 / 技術(shù)干貨 / 正文
好程序員Python培訓(xùn)分享Python異常處理

2020-11-25

Python培訓(xùn)

  好程序員Python培訓(xùn)分享Python異常處理,Python開發(fā)工程師們在工作的過程中經(jīng)常會遇到這樣或者那樣的問題,本篇文章給讀者們分享一下Python異常處理,對Python開發(fā)技術(shù)感興趣的小伙伴隨小編來了解一下吧。

 

  定義:python解釋器檢測到錯誤,觸發(fā)異常(也允許程序員自己觸發(fā)異常)程序員編寫特定的代碼,專門用來捕 捉這個異常(這段代碼與程序邏輯無關(guān),與異常處理有關(guān))如果捕捉成功則進(jìn)入另外一個處理分支,執(zhí)行你為其 定制的邏輯,使程序不會崩潰,這就是異常處理。

  需求:當(dāng)程序遇到問題時不讓程序結(jié)束,而越過錯誤繼續(xù)向下執(zhí)行。

好程序員

  意義:python解析器去執(zhí)行程序,檢測到了一個錯誤時,觸發(fā)異常,異常觸發(fā)后且沒被處理的情況下,程序就在當(dāng)前異常處終止,后面的代碼不會運(yùn)行,所以你必須提供一種異常處理機(jī)制來增強(qiáng)你程序的健壯性與容錯性。

 

try……except……else

格式:

try:

    語句t

except 錯誤碼 as e:

    語句1

except 錯誤碼 as e:

    語句2

……

except 錯誤碼 as e:

    語句n

else:

    語句e

 

注意:else語句可有可無

 

作用:用來檢測try語句塊中的錯誤,從而讓except語句捕獲錯誤信息并處理。

 

  邏輯:當(dāng)程序執(zhí)行到try-except-else語句時1、如果當(dāng)try“語句t”執(zhí)行出現(xiàn)錯誤,會匹配diyi個錯誤碼,如果匹配上就執(zhí)行對應(yīng)"語句"2、如果當(dāng)try“語句t”執(zhí)行出現(xiàn)錯誤,沒有匹配的異常,錯誤將會被提交到上一層的try語句。或者到程序的最上層3、如果當(dāng)try“語句t”執(zhí)行沒有出現(xiàn)錯誤,執(zhí)行else下的“語句e”(你得有)4、如果當(dāng)try“語句t”執(zhí)行出現(xiàn)錯誤,匹配到錯誤碼,執(zhí)行對應(yīng)"語句",然后將不在執(zhí)行以后的except語句。

 

實(shí)例代碼:

 

>>> s1 = 'a'

>>> int(s1)

Traceback (most recent call last):

  File "<pyshell#1>", line 1, in <module>

    int(s1)

ValueError: invalid literal for int() with base 10: 'a'    

>>>

如何才能處理異常,進(jìn)行下一步呢?

 

 

s1 = 'a'

try:

    int(s1)

except ValueError as e:

    print(e)

    print('出錯了,請檢查代碼!!')

================ RESTART: C:\Users\Administrator\Desktop\1.py ================

invalid literal for int() with base 10: 'a'

出錯了,請檢查代碼!!

>>>

多分支

當(dāng)運(yùn)行結(jié)果可能會出現(xiàn)二個或多個異常時使用多分支。

 

try:

    msg = input('請輸入:')

    num = int(msg)   

    nm = list(num)     

except TypeError as e:          

    print(e)

except ValueError as e:

    print(e)

================ RESTART: C:\Users\Administrator\Desktop\1.py ================

請輸入:111

'int' object is not iterable

>>>

================ RESTART: C:\Users\Administrator\Desktop\1.py ================

請輸入:a

invalid literal for int() with base 10: 'a'

>>>

 

 

萬能異常

 

python的異常中,有一個萬能異常:Exception,他可以捕獲任意異常

 

 s1 = 'a'

try:

    int(s1)

except Exception as e:

    print(e)

    print('出錯了,請檢查代碼!!')

================ RESTART: C:\Users\Administrator\Desktop\1.py ================

invalid literal for int() with base 10: 'a'

出錯了,請檢查代碼!!

>>>

 

 

和前面的代碼一模一樣。

 

try-finally語句

語句無論是否發(fā)生異常都將執(zhí)行最后的代碼。

 

 

 

s1 = input('輸入:')

try:

    int(s1)

except ValueError as e:

    print(e)

else:

    print('try內(nèi)代碼塊沒有異常則執(zhí)行我')

finally:

    print('無論異常與否,都會執(zhí)行該模塊,通常是進(jìn)行清理工作')

================ RESTART: C:\Users\Administrator\Desktop\1.py ================

輸入:10

try內(nèi)代碼塊沒有異常則執(zhí)行我

無論異常與否,都會執(zhí)行該模塊,通常是進(jìn)行清理工作

>>>

================ RESTART: C:\Users\Administrator\Desktop\1.py ================

輸入:a

invalid literal for int() with base 10: 'a'

無論異常與否,都會執(zhí)行該模塊,通常是進(jìn)行清理工作

>>>

  最后想要了解更多關(guān)于Python和人工智能方面內(nèi)容的小伙伴,請關(guān)注好程序員Python培訓(xùn)官網(wǎng)、微信公眾號等平臺。

好程序員公眾號

  • · 剖析行業(yè)發(fā)展趨勢
  • · 匯聚企業(yè)項(xiàng)目源碼

好程序員開班動態(tài)

More+
  • HTML5大前端 <高端班>

    開班時間:2021-04-12(深圳)

    開班盛況

    開班時間:2021-05-17(北京)

    開班盛況
  • 大數(shù)據(jù)+人工智能 <高端班>

    開班時間:2021-03-22(杭州)

    開班盛況

    開班時間:2021-04-26(北京)

    開班盛況
  • JavaEE分布式開發(fā) <高端班>

    開班時間:2021-05-10(北京)

    開班盛況

    開班時間:2021-02-22(北京)

    開班盛況
  • Python人工智能+數(shù)據(jù)分析 <高端班>

    開班時間:2021-07-12(北京)

    預(yù)約報名

    開班時間:2020-09-21(上海)

    開班盛況
  • 云計算開發(fā) <高端班>

    開班時間:2021-07-12(北京)

    預(yù)約報名

    開班時間:2019-07-22(北京)

    開班盛況
IT培訓(xùn)IT培訓(xùn)
在線咨詢
IT培訓(xùn)IT培訓(xùn)
試聽
IT培訓(xùn)IT培訓(xùn)
入學(xué)教程
IT培訓(xùn)IT培訓(xùn)
立即報名
IT培訓(xùn)

Copyright 2011-2023 北京千鋒互聯(lián)科技有限公司 .All Right 京ICP備12003911號-5 京公網(wǎng)安備 11010802035720號