最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談Python的異常處理

 更新時(shí)間:2016年06月19日 18:21:45   作者:jinx88  
這篇文章主要介紹了淺談Python的異常處理的相關(guān)資料,需要的朋友可以參考下

 Python的異常處理能力是很強(qiáng)大的,可向用戶準(zhǔn)確反饋出錯(cuò)信息。在Python中,異常也是對(duì)象,可對(duì)它進(jìn)行操作。所有異常都是基類Exception的成員。所有異常都從基類Exception繼承,而且都在exceptions模塊中定義。Python自動(dòng)將所有異常名稱放在內(nèi)建命名空間中,所以程序不必導(dǎo)入exceptions模塊即可使用異常。Python用異常對(duì)象(exception object)表示異常情況,遇到錯(cuò)誤后,會(huì)引發(fā)異常。如果異常對(duì)象并未被處理或捕捉,程序就會(huì)用所謂的回溯(Traceback,一種錯(cuò)誤信息)終止執(zhí)行。

注意:雖然大多數(shù)錯(cuò)誤會(huì)導(dǎo)致異常,但一個(gè)異常不一定代表錯(cuò)誤,有時(shí)候它們只是一個(gè)警告,有時(shí)候它們可能是一個(gè)終止信號(hào),比如退出循環(huán)等。

一.與python異常相關(guān)的關(guān)鍵字

raise:手動(dòng)拋出/引發(fā)異常:raise [exception[,data]
try/except:捕獲異常并處理
pass:忽略異常
as:定義異常實(shí)例(except IOError as e)
finally:無(wú)論是否出現(xiàn)異常,都執(zhí)行的代碼]
else:如果try中的語(yǔ)句沒(méi)有引發(fā)異常,則執(zhí)行else中的語(yǔ)句
except Exception as error:

二.python中的異常類型

1.StandardError類:如果程序上出現(xiàn)邏輯錯(cuò)誤, 將引發(fā)該異常。StandardError類是所有內(nèi)斂異常的基類,放置在默認(rèn)的命名空間中,因此使用IOEroor, EOFError, ImportError等類,不需要導(dǎo)入exception模塊。

StopIteration類:判斷循環(huán)是否執(zhí)行到尾部,如果循環(huán)到尾部,則拋出該異常。
GeneratorExit類:是由Generator函數(shù)引發(fā)的異常,當(dāng)調(diào)用close()時(shí)引發(fā)該異常。
Warning類:表示程序中的代碼引起的警告。

三.基本方式:

1.try:

        語(yǔ)句1

  except  [exception1(,exception2...),[data…]]:

       語(yǔ)句2

  else:

       語(yǔ)句3

該種異常處理語(yǔ)法的規(guī)則是:

·   執(zhí)行try下的語(yǔ)句,如果引發(fā)異常,則執(zhí)行過(guò)程會(huì)跳到第一個(gè)except語(yǔ)句。

·   如果第一個(gè)except中定義的異常與引發(fā)的異常匹配,則執(zhí)行該except中的語(yǔ)句。

·   如果引發(fā)的異常不匹配第一個(gè)except,則會(huì)搜索第二個(gè)except,允許編寫的except數(shù)量沒(méi)有限制。

·   如果所有的except都不匹配,則異常會(huì)傳遞到下一個(gè)調(diào)用本代碼的最高層try代碼中。

·   如果沒(méi)有發(fā)生異常,則執(zhí)行else塊代碼。

import traceback
try:
  1/0
except Exception as err:
  print(err)
try:
  f = open("file.txt","r")
except IOError as e:
  print(e)
try:
  f = open("file.txt","r")
except Exception as e:
  print(e)

 最后兩個(gè)的輸出是一模一樣的---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

2.try:

      語(yǔ)句1

  finally:

      語(yǔ)句2

該語(yǔ)句的執(zhí)行規(guī)則是:

·   執(zhí)行try下的代碼。

·   如果發(fā)生異常,在該異常傳遞到下一級(jí)try時(shí),執(zhí)行finally中的代碼。

·   如果沒(méi)有發(fā)生異常,則執(zhí)行finally中的代碼。

第二種try語(yǔ)法在無(wú)論有沒(méi)有發(fā)生異常都要執(zhí)行代碼的情況下是很有用的。例如我們?cè)趐ython中打開(kāi)一個(gè)文件進(jìn)行讀寫操作,我在操作過(guò)程中不管是否出現(xiàn)異常,最終都是要把該文件關(guān)閉的。這兩種形式相互沖突,使用了一種就不允許使用另一種,而功能又各異

所以,一般情況下,finally里面執(zhí)行的都是一些清理工作,比如:關(guān)閉文件描述符,釋放鎖等

注意,finally中,如果出現(xiàn)異常,外部如果沒(méi)有相應(yīng)的捕獲機(jī)制,該異常會(huì)層層拋出,直到最頂端,然后解釋器停止。一般在外層再加一次try except異常捕獲

三.手動(dòng)使用raise引發(fā)異常

1.raise [exception[,data]]

2.在Python中,要想引發(fā)異常,最簡(jiǎn)單的形式就是輸入關(guān)鍵字raise,后跟要引發(fā)的異常的名稱。異常名稱標(biāo)識(shí)出具體的類:Python異常是那些類的對(duì)象。執(zhí)行raise語(yǔ)句時(shí),Python會(huì)創(chuàng)建指定的異常類的一個(gè)對(duì)象。raise語(yǔ)句還可指定對(duì)異常對(duì)象進(jìn)行初始化的參數(shù)。為此,請(qǐng)?jiān)诋惓n惖拿Q后添加一個(gè)逗號(hào)以及指定的參數(shù)(或者由參數(shù)構(gòu)成的一個(gè)元組)。

3.實(shí)例:

try:
  print("開(kāi)始測(cè)試")
  raise IOError
except IOError:
  print("定義好的錯(cuò)誤")
except:
  print("別的錯(cuò)誤")

相關(guān)文章

  • Python字符串通過(guò)''+''和join函數(shù)拼接新字符串的性能測(cè)試比較

    Python字符串通過(guò)''+''和join函數(shù)拼接新字符串的性能測(cè)試比較

    今天小編就為大家分享一篇關(guān)于Python字符串通過(guò)'+'和join函數(shù)拼接新字符串的性能測(cè)試比較,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-03-03
  • selenium常用API的使用過(guò)程記錄(包括自動(dòng)登錄)

    selenium常用API的使用過(guò)程記錄(包括自動(dòng)登錄)

    selenium是一個(gè)自動(dòng)測(cè)試工具,它可以幫我通過(guò)代碼去實(shí)現(xiàn)驅(qū)動(dòng)瀏覽器自動(dòng)執(zhí)行相應(yīng)的操作,所以我們也可以用它來(lái)做爬蟲(chóng),主要使用selenium的目的是為了跳過(guò)登錄驗(yàn)證,這篇文章主要介紹了selenium的使用過(guò)程記錄,已經(jīng)常用API接口(包括自動(dòng)登錄)
    2024-02-02
  • python中with語(yǔ)句結(jié)合上下文管理器操作詳解

    python中with語(yǔ)句結(jié)合上下文管理器操作詳解

    這篇文章主要給大家介紹了關(guān)于python中with語(yǔ)句結(jié)合上下文管理器操作的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • Python趣味入門教程之循環(huán)語(yǔ)句while

    Python趣味入門教程之循環(huán)語(yǔ)句while

    這篇文章主要給大家介紹了關(guān)于Python趣味入門教程之循環(huán)語(yǔ)句while的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Python全局變量與global關(guān)鍵字常見(jiàn)錯(cuò)誤解決方案

    Python全局變量與global關(guān)鍵字常見(jiàn)錯(cuò)誤解決方案

    這篇文章主要介紹了Python全局變量與global關(guān)鍵字常見(jiàn)錯(cuò)誤解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • python爬取王者榮耀全皮膚的簡(jiǎn)單實(shí)現(xiàn)代碼

    python爬取王者榮耀全皮膚的簡(jiǎn)單實(shí)現(xiàn)代碼

    在本篇文章里小編給大家分享的是一篇關(guān)于16行python代碼 爬取王者榮耀全皮膚的知識(shí)點(diǎn)內(nèi)容,有興趣的朋友們學(xué)習(xí)下。
    2020-01-01
  • TFRecord文件查看包含的所有Features代碼

    TFRecord文件查看包含的所有Features代碼

    今天小編就為大家分享一篇TFRecord文件查看包含的所有Features代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-02-02
  • 利用Pandas索引和選取數(shù)據(jù)方法詳解

    利用Pandas索引和選取數(shù)據(jù)方法詳解

    使用Pandas做數(shù)據(jù)分析的時(shí)候,用的最多的功能恐怕就是對(duì)于數(shù)據(jù)集的索引,選組數(shù)據(jù)子集。Pandas庫(kù)提供了很多非常實(shí)用的方法,了解并熟練使用這些方法而不是用for循環(huán)的方法將會(huì)事半功倍。在這一篇文章中,我們將著重介紹這些方法
    2021-10-10
  • python+pyqt實(shí)現(xiàn)12306圖片驗(yàn)證效果

    python+pyqt實(shí)現(xiàn)12306圖片驗(yàn)證效果

    這篇文章主要為大家詳細(xì)介紹了python+pyqt實(shí)現(xiàn)12306圖片驗(yàn)證效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • 基于pytorch的lstm參數(shù)使用詳解

    基于pytorch的lstm參數(shù)使用詳解

    今天小編就為大家分享一篇基于pytorch的lstm參數(shù)使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-01-01

最新評(píng)論

镇沅| 两当县| 丹棱县| 荣成市| 连江县| 陕西省| 罗江县| 惠安县| 遵义市| 宝坻区| 绥中县| 平武县| 礼泉县| 区。| 固原市| 射阳县| 江陵县| 华亭县| 葵青区| 鄂托克前旗| 云龙县| 莫力| 寿阳县| 南和县| 探索| 汉阴县| 龙州县| 绍兴县| 桂东县| 望江县| 定兴县| 宜章县| 繁峙县| 长武县| 丰镇市| 揭阳市| 黑山县| 遵义县| 黎城县| 樟树市| 大竹县|