亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

聊聊python中的異常嵌套

 更新時間:2020年09月01日 08:28:38   作者:JohnYang  
這篇文章主要介紹了python中的異常嵌套的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)python 異常的相關(guān)知識,感興趣的朋友可以了解下

在Python中,異常也可以嵌套,當(dāng)內(nèi)層代碼出現(xiàn)異常時,指定異常類型與實際類型不符時,則向外傳,如果與外面的指定類型符合,則異常被處理,直至最外層,運用默認(rèn)處理方法進(jìn)行處理,即停止程序,并拋出異常信息。如下代碼:

try:
 try:
  raise IndexError
 except TypeError:
  print('get handled')
except SyntaxError:
 print('ok')

運行程序:

Traceback (most recent call last):
File "<pyshell#47>", line 3, in <module>
raise IndexError
IndexError


再看另一個被外層try-except捕獲的例子:

try:
 try:
  1/0
 finally:
  print('finally')
except:
 print('ok')

運行:

finally
ok

這里值得注意的是except:可以捕獲所有的異常,但實際上這樣做也有缺點,即有時候會包住預(yù)定的異常。


另外,需要提到的是raise A from B,將一個異常與另一個異常關(guān)聯(lián)起來,如果from后面的B沒有被外層捕獲,那么A,B異常都將拋出,例如:

try:
 1/0
except Exception as E:
 raise TypeError('bad') from E

運行:

Traceback (most recent call last):
File "<pyshell#4>", line 2, in <module>
1/0
ZeroDivisionError: division by zero

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "<pyshell#4>", line 4, in <module>
raise TypeError('bad') from E
TypeError: bad

相反,如果外層捕獲了B:

try:
 try:
  1/0
 except Exception as E:
  raise TypeError from E
except TypeError:
 print('no'

運行:

no


最后,再看看try-finally在嵌套中的表現(xiàn)。

try:
 try:
  1/0
 finally:
  print('finally')
except:
 print('ok')

運行:

finally
ok

不管有沒有異常發(fā)生,或者其是否被處理,finally的代碼都要執(zhí)行,如果異常被處理,則停止,如果沒有被處理,向外走,直至最終沒處理,采用默認(rèn)方法處理,上例中,異常在最外層被處理。

try:
 try:
  1/0
 except Exception as E:
  print('happens')
 finally:
  print('finally')
except E:
 print('get handled')

運行:

happens
finally

異常在內(nèi)部被處理,不再向外傳播。

以上就是聊聊python中的異常嵌套的詳細(xì)內(nèi)容,更多關(guān)于python 異常嵌套的資料請關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:

相關(guān)文章

  • python轉(zhuǎn)換摩斯密碼示例

    python轉(zhuǎn)換摩斯密碼示例

    這篇文章主要介紹了python轉(zhuǎn)換摩斯密碼的示例,需要的朋友可以參考下
    2014-02-02
  • Python控制臺實現(xiàn)交互式環(huán)境執(zhí)行

    Python控制臺實現(xiàn)交互式環(huán)境執(zhí)行

    這篇文章主要介紹了Python程序如何在交互式環(huán)境中執(zhí)行,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-06-06
  • pandas中iloc函數(shù)的具體實現(xiàn)

    pandas中iloc函數(shù)的具體實現(xiàn)

    iloc是Pandas中用于基于整數(shù)位置進(jìn)行索引和切片的方法,本文主要介紹了pandas中iloc函數(shù)的具體實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2024-06-06
  • Python SMTP配置參數(shù)并發(fā)送郵件

    Python SMTP配置參數(shù)并發(fā)送郵件

    這篇文章主要介紹了Python SMTP配置參數(shù)并發(fā)送郵件,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-06-06
  • 解決阿里云郵件發(fā)送不能使用25端口問題

    解決阿里云郵件發(fā)送不能使用25端口問題

    這篇文章主要介紹了解決阿里云郵件發(fā)送不能使用25端口問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • python的多重繼承的理解

    python的多重繼承的理解

    這篇文章主要介紹了python的多重繼承的理解的相關(guān)資料,多重繼承不是多容易理解,這里舉例說明幫助大家學(xué)習(xí)參考,需要的朋友可以參考下
    2017-08-08
  • 使用Python進(jìn)行自動化部署詳解

    使用Python進(jìn)行自動化部署詳解

    在軟件開發(fā)和運維領(lǐng)域,自動化部署是一個至關(guān)重要的環(huán)節(jié),本文將介紹如何使用Python進(jìn)行自動化部署,并提供代碼實例來說明,希望對大家有所幫助
    2024-04-04
  • python常用的正則表達(dá)式大全

    python常用的正則表達(dá)式大全

    正則表達(dá)式是一個特殊的字符序列,它能幫助你方便的檢查一個字符串是否與某種模式匹配,下面這篇文章主要給大家介紹了關(guān)于python常用正則表達(dá)式的相關(guān)資料,文中通過圖文以及實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-02-02
  • Python數(shù)據(jù)分析之pandas讀取數(shù)據(jù)

    Python數(shù)據(jù)分析之pandas讀取數(shù)據(jù)

    Pandas讀取的文件主要有CSV,TXT和JSON,今天就整理了這3種文件格式的讀取和導(dǎo)出代碼,文中有非常詳細(xì)的代碼示例及介紹,需要的朋友可以參考下
    2021-06-06
  • python與mysql數(shù)據(jù)庫交互的實現(xiàn)

    python與mysql數(shù)據(jù)庫交互的實現(xiàn)

    這篇文章主要介紹了python與mysql數(shù)據(jù)庫交互的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01

最新評論