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

通過實(shí)例了解Python異常處理機(jī)制底層實(shí)現(xiàn)

 更新時(shí)間:2020年07月23日 16:20:04   作者:bashliuhe  
這篇文章主要介紹了通過實(shí)例了解Python異常處理機(jī)制底層實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

要了解try except異常處理的用法,簡單來說,當(dāng)位于 try 塊中的程序執(zhí)行出現(xiàn)異常時(shí),會將該種異常捕獲,同時(shí)找到對應(yīng)的 except 塊處理該異常,那么這里就有一個(gè)問題,它是如何找到對應(yīng)的 except 塊的呢?

我們知道,一個(gè) try 塊也可以對應(yīng)多個(gè) except 塊,一個(gè) except 塊可以同時(shí)處理多種異常。如果我們想使用一個(gè) except 塊處理所有異常,就可以這樣寫:

try: #...except Exception: #...

這種情況下,對于 try 塊中可能出現(xiàn)的任何異常,Python解釋器都會交給僅有的這個(gè) except 塊處理,因?yàn)樗膮?shù)是 Exception,表示可以接收任何類型的異常。

注意,對于可以接收任何異常的 except 來說,其后可以跟 Exception,也可以不跟任何參數(shù),但表示的含義都是一樣的。

這里就要詳細(xì)介紹一下 Exception。要知道,為了表示程序中可能出現(xiàn)的各種異常,Python 提供了大量的異常類,這些異常類之間有嚴(yán)格的繼承關(guān)系,圖 1 顯示了 Python 的常見異常類之間的繼承關(guān)系。

從圖 1 中可以看出,BaseException 是Python 中所有異常類的基類,但對于我們來說,最主要的是Exception 類,因?yàn)槌绦蛑锌赡艹霈F(xiàn)的各種異常,都繼承自 Exception。

因此,如果用戶要實(shí)現(xiàn)自定義異常,不應(yīng)該繼承 BaseException ,而應(yīng)該繼承 Exception 類。關(guān)于如何自定義一個(gè)異常類,可閱讀《Python自定義異常類》一節(jié)。

當(dāng) try 塊捕獲到異常對象后,Python 解釋器會拿這個(gè)異常類型依次和各個(gè) except 塊指定的異常類進(jìn)行比較,如果捕獲到的這個(gè)異常類,和某個(gè) except 塊后的異常類一樣,又或者是該異常類的子類,那么 Python 解釋器就會調(diào)用這個(gè) except 塊來處理異常;反之,Python 解釋器會繼續(xù)比較,直到和最后一個(gè) except 比較完,如果沒有比對成功,則證明該異常無法處理。

圖 2 演示了位于 try 塊中的程序發(fā)生異常時(shí),從捕獲異常到處理異常的整個(gè)流程。

下面看幾個(gè)簡單的異常捕獲的例子:

try:
  a = int(input("輸入 a:"))
  b = int(input("輸入 b:"))
  print( a/b )
except ValueError:
  print("數(shù)值錯(cuò)誤:程序只能接收整數(shù)參數(shù)")
except ArithmeticError:
  print("算術(shù)錯(cuò)誤")
except Exception:
  print("未知異常")

該程序中,根據(jù)用戶輸入 a 和 b 值的不同,可能會導(dǎo)致 ValueError、ArithmeticError 異常:

  • 如果用戶輸入的 a 或者 b 是其他字符,而不是數(shù)字,會發(fā)生 ValueError 異常,try 塊會捕獲到該類型異常,同時(shí) Python 解釋器會調(diào)用第一個(gè) except 塊處理異常;
  • 如果用戶輸入的 a 和 b 是數(shù)字,但 b 的值為 0,由于在進(jìn)行除法運(yùn)算時(shí)除數(shù)不能為 0,因此會發(fā)生 ArithmeticError 異常,try 塊會捕獲該異常,同時(shí) Python 解釋器會調(diào)用第二個(gè) except 塊處理異常;
  • 當(dāng)然,程序運(yùn)行過程中,還可能由于其他因素出現(xiàn)異常,try 塊都可以捕獲,同時(shí) Python 會調(diào)用最后一個(gè) except 塊來處理。

當(dāng)一個(gè) try 塊配有多個(gè) except 塊時(shí),這些 except 塊應(yīng)遵循這樣一個(gè)排序規(guī)則,即可處理全部異常的 except 塊(參數(shù)為 Exception,也可以什么都不寫)要放到所有 except 塊的后面,且所有父類異常的 except 塊要放到子類異常的 except 塊的后面。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python一句代碼實(shí)現(xiàn)找出所有水仙花數(shù)的方法

    Python一句代碼實(shí)現(xiàn)找出所有水仙花數(shù)的方法

    今天小編就為大家分享一篇Python一句代碼實(shí)現(xiàn)找出所有水仙花數(shù)的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • 如何在python中實(shí)現(xiàn)隨機(jī)選擇

    如何在python中實(shí)現(xiàn)隨機(jī)選擇

    這篇文章主要介紹了如何在python中實(shí)現(xiàn)隨機(jī)選擇,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • Python?通過colorama?設(shè)置控制臺、命令行輸出彩色文字

    Python?通過colorama?設(shè)置控制臺、命令行輸出彩色文字

    這篇文章主要介紹了Python?通過colorama?設(shè)置控制臺、命令行輸出彩色文字的相關(guān)資料,需要的朋友可以參考下
    2023-09-09
  • python request 模塊詳細(xì)介紹

    python request 模塊詳細(xì)介紹

    這篇文章主要介紹了python request 模塊詳細(xì)介紹,幫助大家利用request 模塊學(xué)習(xí)爬蟲,感興趣的朋友可以了解下
    2020-11-11
  • python基礎(chǔ)之匿名函數(shù)詳解

    python基礎(chǔ)之匿名函數(shù)詳解

    這篇文章主要介紹了python基礎(chǔ)之匿名函數(shù)詳解,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)python基礎(chǔ)的小伙伴們有很好的幫助,需要的朋友可以參考下
    2021-04-04
  • Python 如何安裝Selenium(推薦)

    Python 如何安裝Selenium(推薦)

    Selenium 是一個(gè) Web的自動化測試工具 ,最初是為網(wǎng)站 自動化測試而開發(fā)的 , Selenium 可以直接調(diào)用瀏覽器 ,它支持所有主流的瀏覽器,本文給大家介紹Python 如何安裝Selenium,感興趣的朋友一起看看吧
    2021-05-05
  • Python數(shù)據(jù)分析之NumPy常用函數(shù)使用詳解

    Python數(shù)據(jù)分析之NumPy常用函數(shù)使用詳解

    本篇將介紹怎樣從文件中載入數(shù)據(jù),以及怎樣使用NumPy的基本數(shù)學(xué)和統(tǒng)計(jì)分析函數(shù)、學(xué)習(xí)讀寫文件的方法,并嘗試函數(shù)式編程和NumPy線性代數(shù)運(yùn)算,來學(xué)習(xí)NumPy的常用函數(shù),需要的可以參考一下
    2022-05-05
  • Python?JSON數(shù)據(jù)解析過程(最新推薦)

    Python?JSON數(shù)據(jù)解析過程(最新推薦)

    json模塊提供了將JSON格式的數(shù)據(jù)轉(zhuǎn)換為Python對象(如列表、字典等)以及將Python對象轉(zhuǎn)換為JSON格式的數(shù)據(jù)的方法,下面給大家分享使用json模塊解析JSON數(shù)據(jù)的常見方法,感興趣的朋友一起看看吧
    2024-02-02
  • python 安裝教程之Pycharm安裝及配置字體主題,換行,自動更新

    python 安裝教程之Pycharm安裝及配置字體主題,換行,自動更新

    這篇文章主要介紹了python 安裝教程之Pycharm安裝及配置字體主題,換行,自動更新,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • Pycharm以root權(quán)限運(yùn)行腳本的方法

    Pycharm以root權(quán)限運(yùn)行腳本的方法

    今天小編就為大家分享一篇Pycharm以root權(quán)限運(yùn)行腳本的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01

最新評論

唐海县| 达尔| 宜宾县| 文登市| 双柏县| 安泽县| 得荣县| 乐昌市| 宁明县| 东山县| 师宗县| 阜康市| 延边| 蒲江县| 淮北市| 微山县| 曲阳县| 湟源县| 慈利县| 天津市| 锡林郭勒盟| 巧家县| 营山县| 吉安市| 大连市| 崇左市| 乐清市| 开江县| 襄垣县| 嵊泗县| 九寨沟县| 盐亭县| 山阴县| 登封市| 德阳市| 绥滨县| 南江县| 织金县| 达尔| 兴和县| 广灵县|