<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        python的錯誤與異常處理

        來源:懂視網 責編:小采 時間:2020-11-27 14:21:03
        文檔

        python的錯誤與異常處理

        python的錯誤與異常處理:本篇文章給大家帶來的內容是關于python的錯誤與異常處理,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。一:語法錯誤syntax errors熟悉語法!二:異常①打印錯誤信息時,異常的類型作為異常的內置名顯示,并以調用棧的形式顯示具體信息②
        推薦度:
        導讀python的錯誤與異常處理:本篇文章給大家帶來的內容是關于python的錯誤與異常處理,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。一:語法錯誤syntax errors熟悉語法!二:異常①打印錯誤信息時,異常的類型作為異常的內置名顯示,并以調用棧的形式顯示具體信息②

        本篇文章給大家帶來的內容是關于python的錯誤與異常處理,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

        一:語法錯誤syntax errors

        熟悉語法!

        二:異常

        ①打印錯誤信息時,異常的類型作為異常的內置名顯示,并以調用棧的形式顯示具體信息

        ②常見的異常:
        NameError、
        ZeropisionError、
        TypeError
        SyntaxError
        IndexError 索引超出序列范圍
        KeyError 請求一個不存在的字典關鍵字
        IOError 輸入輸出錯誤
        AttributeError 嘗試訪問未知的對象屬性
        三:異常處理

        while True:
        try:
        x = int(input("Please enter a number: "))
        break
        except ValueError:
        print("Oops! That was no valid number. Try again ")

        try語句按照如下方式工作;
        ①首先,執行try子句(在關鍵字try和關鍵字except之間的語句)
        ②如果沒有異常發生,忽略except子句,try子句執行后結束。
        ③如果在執行try子句的過程中發生了異常,那么try子句余下的部分將被忽略。
        ④如果異常的類型和 except 之后的名稱相符,那么對應的except子句將被執行。最后執行 try 語句之后的代碼。
        ⑤如果一個異常沒有與任何的except匹配,那么這個異常將會傳遞給上層的try中。
        ⑥一個 try 語句可能包含多個except子句,分別來處理不同的特定的異常。最多只有一個分支會被執行。
        ⑦一個except子句可以同時處理多個異常,這些異常將被放在一個括號里成為一個元組。

        except (RuntimeError, TypeError, NameError):
        pass

        ⑧最后一個except子句可以忽略異常的名稱,它將被當作通配符使用。你可以使用這種方法打印一個錯誤信息,然后再次把異常拋出。
        ⑨try except 語句還有一個可選的else子句,如果使用這個子句,那么必須放在所有的except子句之后。這個子句將在try子句沒有發生任何異常的時候執行.

        三:拋出異常

        Python 使用 raise 語句拋出一個指定的異常
        raise 唯一的一個參數指定了要被拋出的異常。
        它必須是一個異常的實例或者是異常的類(也就是 Exception 的子類)

        四:用戶自定義異常

        可以通過創建一個新的異常類來擁有自己的異常。
        異常類繼承自 Exception 類,可以直接繼承,或者間接繼承。
        當創建一個模塊有可能拋出多種不同的異常時,
        一種通常的做法是為這個包建立一個基礎異常類,

        五:定義清理行為

        try:
         raise KeyboardInterrupt
         finanlly:
         print("dooo")

        不管 try 子句里面有沒有發生異常,finally 子句都會執行
        如果一個異常在 try 子句里(或者在 except 和 else 子句里)被拋出,
        而又沒有任何的 except 把它截住,那么這個異常會在 finally 子句執行后再次被拋出

        六:擴展------------->斷言機制

        assert 等價于布爾真的判定,不滿足拋出異常AssertionError
        用途: 防御性的程序
        運行時需要邏輯檢查
        參考文獻:《python使用斷言的最佳時機》

        # ---------------------------------------------------------------------#
        # 異常處理
        # ---------------------------------------------------------------------#
        while True:
         try:
         x = int(input("Please enter a number: "))
         break
         except ValueError:
         print("Oops! That was no valid number. Try again ")
        
        # ---------------------------------------------------------------------#
        # 拋出異常
        # ---------------------------------------------------------------------#
        """
        try:
         raise NameError('HiThere')
        except NameError:
         print('An exception flew by!')
         raise
        """
        
        # ---------------------------------------------------------------------#
        # 用戶自定義異常
        # ---------------------------------------------------------------------#
        class MyError(Exception): # 繼承自Exception
         def __init__(self, value): # 構造函數重寫
         self.value = value
        
         def __str__(self):
         return repr(self.value)
        try:
         raise MyError(2*2) # 拋出異常
        except MyError as e:
         print('My exception occurred, value:', e.value)
        # 當創建一個模塊有可能拋出多種不同的異常時,
        # 一種通常的做法是為這個包建立一個基礎異常類,
        # 然后基于這個基礎類為不同的錯誤情況創建不同的子類
        class Error(Exception):
         """Base class for exceptions in this module."""
         pass
        class InputError(Error):
         """Exception raised for errors in the input.
         Attributes:
         expression -- input expression in which the error occurred
         message -- explanation of the error
         """
         def __init__(self, expression, message):
         self.expression = expression
         self.message = message
        class TransitionError(Error):
         """Raised when an operation attempts a state transition that's not
         allowed.
        
         Attributes:
         previous -- state at beginning of transition
         next -- attempted new state
         message -- explanation of why the specific transition is not allowed
         """
        
         def __init__(self, previous, next1, message):
         self.previous = previous
         self.next = next1
         self.message = message
        
        
        try:
         raise InputError(2*2, 45) # 拋出異常
        except InputError: # 處理異常
         print('My exception occurred')
        
        # ---------------------------------------------------------------------#
        # 定義清理行為
        # ---------------------------------------------------------------------#
        
        def divide(x, y):
         try:
         result = x / y
         except ZeroDivisionError:
         print("division by zero!")
         else: # 沒有異常的時執行
         print("result is", result)
         finally: # 無論在任何情況下都會執行的清理行為
         print("executing finally clause")
        
        
        # 一個異常在 try 子句里(或者在 except 和 else 子句里)被拋出,
        # 而又沒有任何的 except 把它截住,那么這個異常會在 finally 子句執行后再次被拋出
        # divide("2", "1") #從測試代碼

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        python的錯誤與異常處理

        python的錯誤與異常處理:本篇文章給大家帶來的內容是關于python的錯誤與異常處理,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。一:語法錯誤syntax errors熟悉語法!二:異常①打印錯誤信息時,異常的類型作為異常的內置名顯示,并以調用棧的形式顯示具體信息②
        推薦度:
        標簽: 處理 錯誤 異常
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲精品网站在线观看你懂的| 国产精品免费无遮挡无码永久视频 | 亚洲va精品中文字幕| ww在线观视频免费观看| 亚洲国产成人超福利久久精品| 亚洲成a人片在线观看天堂无码| 精品一区二区三区免费观看| 亚洲伦乱亚洲h视频| 永久免费精品影视网站| 亚洲综合网站色欲色欲| 久久国产精品成人免费| 日本高清免费中文字幕不卡| 毛片亚洲AV无码精品国产午夜| 日韩成人免费视频| 久久亚洲精品中文字幕| 香蕉视频免费在线播放| 久久久久亚洲AV无码专区桃色| 亚洲一区二区三区国产精华液| 国内精品免费久久影院| 久久精品国产亚洲av水果派| 免费毛片在线看片免费丝瓜视频| 亚洲无av在线中文字幕| 99在线在线视频免费视频观看| 亚洲va中文字幕无码| 亚洲AV综合色区无码二区爱AV| 久久国产乱子伦精品免费一| 亚洲人成网站日本片| 亚洲裸男gv网站| 日日麻批免费40分钟日本的| 国产精品亚洲lv粉色| 亚洲精品成人片在线播放| 免费在线观看一区| 午夜视频免费成人| caoporn国产精品免费| 亚洲天天做日日做天天看| 国内精品免费视频自在线| 亚洲沟沟美女亚洲沟沟| 免费一级毛片在线播放| 老汉精品免费AV在线播放| 久久精品国产亚洲AV未满十八| 国产大片线上免费观看 |