亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python異常處理機制的示例分析

發布時間:2021-12-08 17:05:56 來源:億速云 閱讀:149 作者:小新 欄目:開發技術

這篇文章將為大家詳細講解有關Python異常處理機制的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

    什么是異常?

    def num(a, b):
        a = int(a)
        b = int(b)
        result = a / b
        print(result)

    上面是一個很簡單的除法的函數,語法上沒有任何問題。

    但是如果調用函數的時候,傳入字符串。則會拋出異常ValueError。且后續代碼不會執行

    Python異常處理機制的示例分析

    再比如除數是0。那也將拋出異常ZeroDivisionError。且后續代碼不會執行

    Python異常處理機制的示例分析

    異常處理

    格式

    try:
        #程序代碼
    except [errorNmae]:
        #出現異常后的處理代碼
    [else:]
        #當try中代碼沒有問題時,會執行else。但是try中不能有retrun
    [finally:]
        #最后一定會被執行的代碼

    try-except 

    格式一-try...except...
    try:
        num('a', 'b')
    except:
        print('你的程序出現了大問題!!!')
    print('--------->end')

    通過try-except處理異常,當捕獲到異常時,將執行except部分的代碼。且程序不會終端,繼續向下執行。

    Python異常處理機制的示例分析

    格式二-try...except {errorName}...

    上述處理異常的時候沒有區分異常情況。也可以捕獲異常的name,進行不同的處理。

    try:
        num('a', 'b')
    except ValueError:
        print('你的參數格式寫的不對!!!')
    except ZeroDivisionError:
        print('你的除數是0!!!')
    print('--------->end')

    Python異常處理機制的示例分析

    try:
        num(10, 0)
    except ValueError:
        print('你的參數格式寫的不對!!!')
    except ZeroDivisionError:
        print('你的除數是0!!!')
    print('--------->end')

    Python異常處理機制的示例分析

    格式三-try...except {errorName} as key...

    except {errorName} as key。會將報錯的信息賦值給key

    注意:Python中的錯誤類型也是class,所有錯誤類型都繼承自BaseException。所以excpt使用時要注意,如果錯誤類型還有子類型,也會將子類型一網打盡。

    try:
        num(10, 0)
    except ValueError as error_msg_value:
        print('你的參數格式寫的不對!!!', error_msg_value)
    except ZeroDivisionError as error_msg_zero:
        print('你的除數是0!!!', error_msg_zero)
    print('--------->end')

    Python異常處理機制的示例分析

    Python異常處理機制的示例分析

    這種使用errorName捕獲異常的情況。如果異常沒有被捕獲到,會一直向上拋,最終被python解釋器不過。打印錯誤信息。

    Python異常處理機制的示例分析

    try-except-finally

    無論是否拋出異常,最后finally都會執行。

    try:
        num('a', 'b')
    except ZeroDivisionError as error_msg_zero:
         print('你的除數是0!!!', error_msg_zero)
    finally:
        print('無論有沒有異常,finally都會執行')
    print('--------->end')

    -------------
    輸出:
    你的除數是0!!! division by zero
    無論有沒有異常,finally都會執行
    --------->end

    但是如果異常沒有except沒有捕獲到異常,異常最后由python解釋器拋出。那么finally執行完后,后續的代碼就不會執行了。

    try:
        num('a', 'b')
    # except ValueError as error_msg_value:
    #     print('你的參數格式寫的不對!!!', error_msg_value)
    except ZeroDivisionError as error_msg_zero:
         print('你的除數是0!!!', error_msg_zero)
    finally:
        print('無論有沒有異常,finally都會執行')
    print('--------->end')

    Python異常處理機制的示例分析

    try-except-else

    當try中代碼沒有問題時,會執行else。但是try中不能有retrun。

    try:
        num(10, 2)
    except ValueError as error_msg_value:
        print('你的參數格式寫的不對!!!', error_msg_value)
    except ZeroDivisionError as error_msg_zero:
         print('你的除數是0!!!', error_msg_zero)
    else:
        print('else')
    finally:
        print('無論有沒有異常,finally都會執行')
    print('--------->end')

     ---------------
    輸出:
    5.0
    else
    無論有沒有異常,finally都會執行
    --------->end

    拋出異常

    格式

    raise errorName('error message')

    錯誤類型名可以自定義,但盡量使用Python內置錯誤類型。

    def num(a, b):
        result = a / b
        print(result)
        if result < 10:
            raise ValueError('商小于10,不符合預期。')
     
    num(10, 2)

    Python異常處理機制的示例分析 

    raise還可以將一個錯誤類型轉換為另一個錯誤類型

    def ch_type():
        try:
            result = 10 / 0
        except ZeroDivisionError as err_msg:
            raise Exception(err_msg)
     
    ch_type()

    原本錯誤類型ZeroDivisionError,改成了Exception。

    Python異常處理機制的示例分析

    關于“Python異常處理機制的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    肃北| 绍兴县| 兴和县| 清河县| 太和县| 宜宾市| 洛隆县| 屯门区| 青川县| 会东县| 芦溪县| 三河市| 黔江区| 普兰店市| 城固县| 深圳市| 清徐县| 阳春市| 尚义县| 阜宁县| 武夷山市| 南部县| 仁怀市| 陕西省| 图木舒克市| 大厂| 精河县| 安平县| 呼图壁县| 东乌珠穆沁旗| 广东省| 三明市| 政和县| 崇明县| 新民市| 卓资县| 高台县| 江城| 望城县| 罗源县| 台东县|