<noframes id="rhdfr">
<address id="rhdfr"></address>

    <address id="rhdfr"><address id="rhdfr"><listing id="rhdfr"></listing></address></address>

    <form id="rhdfr"><nobr id="rhdfr"><meter id="rhdfr"></meter></nobr></form>

    400-650-7353
    您所在的位置:首頁 > IT干貨資料 > python > 【Python基礎知識】捕獲多個異常

    【Python基礎知識】捕獲多個異常

    • 來源:
    • 2021-08-30 16:38:09
    • 閱讀()
    • 分享
    • 手機端入口

    除了可以捕獲到指定的異常和沒有發生異常這兩種情況外,還有第三種情況,就是在try和except之間的代碼塊中,發生了異常,但不是指定的異常:

    1. try
    2.     # 將輸入x和y的代碼放進try中,其余不變 
    3.     x = int(input('請輸入被除數:')) 
    4.     y = int(input('請輸入除數:')) 
    5.     result = x / y 
    6.     print('結果為{}'.format(result)) 
    7. except ZeroDivisionError: 
    8.     print('除數不能為零'
    9. print('=' * 30

    嘗試輸入被除數為一個不能轉換為整數的字符串,如字母'c':

    1. 請輸入被除數:c 
    2. Traceback (most recent call last): 
    3.   File "example.py", line 2in <module> 
    4.     x = int(input('請輸入被除數:')) 
    5. ValueError: invalid literal for int() with base 10'c' 

    Python解釋器提示出錯了,ValueError,而上述代碼只能捕獲ZeroDivisionError,這就是第三種情況,如果發生了異常,但不是指定的ZeroDivisionError,Python解釋器仍然報錯(除非在外層的try-except語句中處理了這個異常)。

    如果想同時處理這兩種異常,那么可以將這兩種異常名稱全部寫在except語句后面,用逗號分隔開,并用括號括起來:

    1. try
    2.     x = int(input('請輸入被除數:')) 
    3.     y = int(input('請輸入除數:')) 
    4.     result = x / y 
    5.     print('結果為{}'.format(result)) 
    6. except (ZeroDivisionError, ValueError): 
    7.     print('除數不能為零, 且被除數與除數必須為數字'
    8. print('=' * 30

    運行修改后的程序,輸入被除數為'c':

    1. 請輸入被除數:c 
    2. 除數不能為零, 且被除數與除數必須為數字 
    3. ============================== 

    由此可見,成功處理了ValueError。再次運行程序,試試它還能不能處理ZeroDivisionError:

    1. 請輸入被除數:10 
    2. 請輸入除數:0 
    3. 除數不能為零, 且被除數與除數必須為數字 
    4. ============================= 

    可以同時處理這兩種異常,要處理更多的異常也是如此,只要在括號中添加待處理的異常即可。除此之外,還可以使用多個except關鍵字,分別處理這兩種異常的情況,這樣做的好處是可以根據不同的異常進行不同的處理:

    1. try
    2.     x = int(input('請輸入被除數:')) 
    3.     y = int(input('請輸入除數:')) 
    4.     result = x / y 
    5.     print('結果為{}'.format(result)) 
    6. except ZeroDivisionError:   # 處理ZeroDivisionError 
    7.     print('除數不能為零!'
    8. except ValueError:   # 處理ValueError 
    9.     print('除數與被除數必須為數字!'
    10. print('=' * 30

    測試是否能處理這兩種異常,首先測試是否處理ValueError:

    1. 請輸入被除數:s 
    2. 除數與被除數必須為數字! 
    3. ============================== 

    然后測試是否處理ZeroDivisionError:

    1. 請輸入被除數:10 
    2. 請輸入除數:0 
    3. 除數不能為零! 
    4. ============================== 

    由此可見,使用兩個except關鍵字能夠分別處理這兩種異常情況。

    文章“【Python基礎知識】捕獲多個異常”已幫助

    更多內容

    >>本文地址:http://www.hamptonsurfmovie.com/zhuanye/2021/69825.html

    THE END  

    聲明:本站稿件版權均屬中公教育優就業所有,未經許可不得擅自轉載。

    領取零基礎自學IT資源

    (內含學習路線+視頻教程+項目源碼)

    涉及Java、Web前端、UI設計、軟件測試、Python等多個IT熱門方向

    打開微信掃一掃即可領取哦~

    1 您的年齡

    2 您的學歷

    3 您更想做哪個方向的工作?

    獲取測試結果
    • 大前端大前端
    • 大數據大數據
    • 互聯網營銷互聯網營銷
    • JavaJava
    • Linux云計算Linux
    • Python+人工智能Python
    • 嵌入式物聯網嵌入式
    • 全域電商運營全域電商運營
    • 軟件測試軟件測試
    • 室內設計室內設計
    • 平面設計平面設計
    • 電商設計電商設計
    • 網頁設計網頁設計
    • 全鏈路UI/UE設計UI設計
    • VR/AR游戲開發VR/AR
    • 網絡安全網絡安全
    • 新媒體與短視頻運營新媒體
    • 直播帶貨直播帶貨
    • 智能機器人軟件開發智能機器人
     

    快速通道fast track

    近期開班時間TIME

    把她压在桌子上 蹂躏她的双乳

    <noframes id="rhdfr">
    <address id="rhdfr"></address>

      <address id="rhdfr"><address id="rhdfr"><listing id="rhdfr"></listing></address></address>

      <form id="rhdfr"><nobr id="rhdfr"><meter id="rhdfr"></meter></nobr></form>