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

python 異常的傳遞性及主動拋出學習

 更新時間:2023年03月24日 09:40:55   作者:Dante丶  
這篇文章主要為大家介紹了python 異常的傳遞性及主動拋出學習,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

異常的傳遞性

在 Python 中,異常的傳遞性指的是,當一個異常沒有被處理時,它會沿著調(diào)用棧向上拋出,直到被處理或者導致程序崩潰。

具體來說,當一個函數(shù)內(nèi)部發(fā)生了異常但是沒有進行處理時,該異常會向上拋出給調(diào)用該函數(shù)的代碼塊。如果這個代碼塊也沒有處理該異常,那么異常會繼續(xù)向上拋出,直到找到能夠處理該異常的代碼塊或程序中止運行。

下面是一個簡單的例子來演示異常的傳遞性:

def func1():
    print("func1 開始")
    func2()
    print("func1 結(jié)束")
def func2():
    print("func2 開始")
    func3()
    print("func2 結(jié)束")
def func3():
    print("func3 開始")
    a = 1 / 0   # 引發(fā) ZeroDivisionError 異常
    print("func3 結(jié)束")
try:
    func1()
except Exception as e:
    print("錯誤信息:", e)

在上述代碼中,函數(shù) func3() 發(fā)生了除零錯誤( ZeroDivisionError ),但是沒有處理該異常。因此,該異常會向上拋出給調(diào)用 func3() 的代碼塊 func2() ,而 func2() 也沒有處理該異常,所以異常會繼續(xù)向上拋出給調(diào)用 func2() 的代碼塊 func1() 。最終,在 func1() 中的 try...except... 語句塊捕獲到了異常,并輸出了錯誤信息。

總之,在編寫完整的程序時,我們應該注意處理可能出現(xiàn)的異常,從而避免異常的傳遞和程序的崩潰。

主動拋出異常

在 Python 中,我們可以使用內(nèi)置的 Exception 類來拋出異常。Exception 是所有標準異常的基類,當我們自定義異常時也可以繼承該類。通過繼承 Exception 類,我們可以很方便地創(chuàng)建自己的異常類型,并定義相應的處理方式。

下面是一個使用 Exception 拋出自定義異常的代碼示例:

def func(value):
    if value < 0:
        # 如果參數(shù)小于0,則拋出自定義異常
        raise Exception("參數(shù)不能小于0")
    else:
        print(f"參數(shù)值為:{value}")
try:
    # 調(diào)用帶參數(shù)的函數(shù)
    func(-1)
except Exception as e:
    # 捕獲自定義異常并輸出錯誤信息
    print(e)

在上述代碼中,當傳入的參數(shù)小于 0 時,我們使用 raise 語句拋出 Exception 異常,并將錯誤信息一同拋出。最后,在主程序中,我們調(diào)用帶參數(shù)的 func() 函數(shù),并在捕獲到自定義異常時輸出錯誤信息。

需要注意的是,使用 Exception 拋出異常可能會導致代碼結(jié)構(gòu)不太清晰,因為它可以拋出任何種類的異常,包括系統(tǒng)內(nèi)置的異常和自定義的異常。因此,如果想要更好地控制異常的類型和處理方式,建議還是使用專門的異常類或者自定義的異常類。

以上就是python 異常的傳遞性及主動拋出學習的詳細內(nèi)容,更多關(guān)于python 異常傳遞拋出的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 對python插入數(shù)據(jù)庫和生成插入sql的示例講解

    對python插入數(shù)據(jù)庫和生成插入sql的示例講解

    今天小編就為大家分享一篇對python插入數(shù)據(jù)庫和生成插入sql的示例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • python 刪除指定時間間隔之前的文件實例

    python 刪除指定時間間隔之前的文件實例

    下面小編就為大家分享一篇python 刪除指定時間間隔之前的文件實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • pytorch自定義loss損失函數(shù)

    pytorch自定義loss損失函數(shù)

    這篇文章主要介紹了pytorch自定義loss損失函數(shù),自定義loss的方法有很多,本文要介紹的是把loss作為一個pytorch的模塊,下面詳細資料需要的小伙伴可以參考一下
    2022-02-02
  • python?中的jieba分詞庫

    python?中的jieba分詞庫

    這篇文章主要介紹了python中的jieba分詞庫,jieba?庫是優(yōu)秀的中文分詞第三方庫,中文文本需要通過分詞獲得單個的詞語,下面文章的的詳細內(nèi)容,需要的朋友可以參考一下
    2021-11-11
  • Python中聲明只包含一個元素的元組數(shù)據(jù)方法

    Python中聲明只包含一個元素的元組數(shù)據(jù)方法

    這篇文章主要介紹了Python中聲明只包含一個元素的元組數(shù)據(jù)方法,本文是實際經(jīng)驗總結(jié)而來,沒有碰到這個需要可能不會注意到這個問題,需要的朋友可以參考下
    2014-08-08
  • Python求兩個list的差集、交集與并集的方法

    Python求兩個list的差集、交集與并集的方法

    這篇文章主要介紹了Python求兩個list的差集、交集與并集的方法,是Python集合數(shù)組操作中常用的技巧,需要的朋友可以參考下
    2014-11-11
  • Python  連接字符串(join %)

    Python 連接字符串(join %)

    join 方法用于連接字符串數(shù)組,使用 % 連接多個變量下面看例子
    2008-09-09
  • Selenium?4.2.0?標簽定位8種方法詳解

    Selenium?4.2.0?標簽定位8種方法詳解

    這篇文章主要介紹了Selenium?4.2.0?標簽定位8種方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • Pytorch之ToPILImage()不輸出圖片問題及解決

    Pytorch之ToPILImage()不輸出圖片問題及解決

    這篇文章主要介紹了Pytorch之ToPILImage()不輸出圖片問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • Python流程控制語句的深入講解

    Python流程控制語句的深入講解

    這篇文章主要給大家介紹了關(guān)于Python流程控制語句的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Python具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2020-06-06

最新評論

涟水县| 武汉市| 康保县| 济源市| 潢川县| 沽源县| 万年县| 定西市| 西乡县| 花莲市| 莲花县| 万年县| 庆安县| 澄城县| 宁陕县| 河曲县| 崇仁县| 双江| 镇原县| 彝良县| 砀山县| 克什克腾旗| 读书| 夹江县| 牡丹江市| 河西区| 阜平县| 沾益县| 大石桥市| 咸阳市| 大余县| 汕尾市| 英吉沙县| 安宁市| 巴林左旗| 宿松县| 西盟| 开化县| 延长县| 吴桥县| 台山市|