<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## 引言   python提供了兩個非常重要的功能來處理python程序在運行中出現的異常和錯誤。你可以使用該功能來調試python程序。 * 異常處理 * 斷言(Assertions) ## 基本語法 ~~~ try: 可能發生異常的代碼 except 異常錯誤的類型 as e: #e表示用來接受異常錯誤原因 pass         #可以在此處打印提示人們錯誤原因 ~~~ ## 異常種類 ### 常見異常 ~~~ AttributeError 試圖訪問一個對象沒有的屬性 IOError 輸入/輸出異常;基本上是無法打開文件 ImportError 無法引入模塊或包;基本上是路徑問題或名稱錯誤 IndentationError 語法錯誤的子類,縮進錯誤 IndexError 下標索引超出序列邊界,比如當x只有三個元素,卻試圖訪問x[5] KeyError 試圖訪問字典里不存在的鍵 KeyboardInterrupt Ctrl+C被按下 NameError 使用一個還未被賦予對象的變量 SyntaxError Python語法錯誤 TypeError 傳入對象類型與要求的不符合 UnboundLocalError 試圖訪問一個還未被設置的局部變量,基本上是由于另有一個同名的全局變量,導致你以為正在訪問它 ValueError 傳入一個調用者不期望的值,即使值的類型是正確的 ~~~ ### 更多異常 ``` ArithmeticError AssertionError AttributeError BaseException BufferError BytesWarning DeprecationWarning EnvironmentError EOFError Exception FloatingPointError FutureWarning GeneratorExit ImportError ImportWarning IndentationError IndexError IOError KeyboardInterrupt KeyError LookupError MemoryError NameError NotImplementedError OSError OverflowError PendingDeprecationWarning ReferenceError RuntimeError RuntimeWarning StandardError StopIteration SyntaxError SyntaxWarning SystemError SystemExit TabError TypeError UnboundLocalError UnicodeDecodeError UnicodeEncodeError UnicodeError UnicodeTranslateError UnicodeWarning UserWarning ValueError Warning ZeroDivisionError ``` ## 異常處理   一般情況下,如果我們對即將運行的代碼有可能出現異常的擔憂,可以使用異常處理來運行我們代碼,但是在捕獲異常時最好能夠具體寫清楚異常的類型。如果可能出現多種異常,可以使用if判斷,也可以把異常類型放在一起寫成元祖的形式(但是這樣的話沒法具體指導是哪一種異常報錯),也可以將Exception這個萬能異常放在判斷的最后,以防出現了我們沒有捕獲到的異常。 ~~~ s1 = 'hello' try: int(s1) except IndexError as e: print('出現了以下錯誤', e) except KeyError as e: print('出現了以下錯誤', e) except ValueError as e: print('出現了以下錯誤', e) except Exception as e: print('出現了以下錯誤', e) ~~~ ~~~ s1 = 'hello' try: int(s1) except (IndexError,ValueError,KeyError) as e: print('出現了以下錯誤', e) except Exception as e: print('出現了以下錯誤', e) ~~~ ### 其他異常結構 ~~~ try: # 主代碼塊 pass except KeyError as e: # 異常時,執行該塊 pass else: # 主代碼正常執行完,執行該塊,如出現異常,不執行該塊 pass finally: # 無論異常與否,最終執行該塊 pass ~~~ ### 主動觸發異常 ~~~ try: raise Exception('錯誤了。。。') except Exception as e: print(e) ~~~ ### 自定義異常 ~~~ class WusirException(Exception): def __init__(self, msg): self.message = msg try: raise WusirException('這是我自定義的異常') except WusirException as e: print(e) ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看