<address id="bjr5b"><form id="bjr5b"></form></address>

    <form id="bjr5b"></form>

        <address id="bjr5b"><listing id="bjr5b"><meter id="bjr5b"></meter></listing></address>

          <form id="bjr5b"></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關鍵字能夠分別處理這兩種異常情況。

          學習疑問申請解答
          您的姓名
          您的電話
          意向課程
           

          中公優就業

          IT小助手

          掃描上方二維碼添加好友,請備注:599,享學習福利。

          >>本文地址:
          注:本站稿件未經許可不得轉載,轉載請保留出處及源文件地址。

          推薦閱讀

          優就業:ujiuye

          關注中公優就業官方微信

          • 關注微信回復關鍵詞“大禮包”,享學習福利
          QQ交流群
          在線疑問解答
          (加群備注“網站”)
          IT培訓交流群 加入群聊 +
          軟件測試 加入群聊 +
          全鏈路UI/UE設計 加入群聊 +
          Python+人工智能 加入群聊 +
          互聯網營銷 加入群聊 +
          Java開發 加入群聊 +
          PHP開發 加入群聊 +
          VR/AR游戲開發 加入群聊 +
          大前端 加入群聊 +
          大數據 加入群聊 +
          Linux云計算 加入群聊 +
          優就業官方微信
          掃碼回復關鍵詞“大禮包”
          享學習福利

          測一測
          你適合學哪門IT技術?

          1 您的年齡

          2 您的學歷

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

          獲取測試結果
           
          課程資料、活動優惠 領取通道
           
           
          国产成人精品亚洲日本语言
          <address id="bjr5b"><form id="bjr5b"></form></address>

            <form id="bjr5b"></form>

                <address id="bjr5b"><listing id="bjr5b"><meter id="bjr5b"></meter></listing></address>

                  <form id="bjr5b"></form>