<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>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # Python 錯誤和內置異常 > 原文: [https://www.programiz.com/python-programming/exceptions](https://www.programiz.com/python-programming/exceptions) #### 在本教程中,您將了解 Python 內置的不同類型的錯誤和異常。 每當 Python 解釋器遇到錯誤時,它們就會引發。 在編寫程序時,我們可能會犯某些錯誤,而在嘗試運行該程序時會導致錯誤。 python 程序一旦遇到未處理的錯誤,即會終止。 這些錯誤可以大致分為兩類: 1. 語法錯誤 2. 邏輯錯誤(異常) * * * ## Python 語法錯誤 由于未遵循語言的正確結構(語法)而導致的錯誤稱為**語法錯誤**或**解析錯誤**。 讓我們看一個例子: ```py >>> if a < 3 File "<interactive input>", line 1 if a < 3 ^ SyntaxError: invalid syntax ``` 如示例中所示,箭頭指示解析器在哪里遇到語法錯誤。 在這里我們可以注意到`if`語句中缺少冒號`:`。 * * * ## Python 邏輯錯誤(異常) 在運行時(通過語法測試后)發生的錯誤稱為**異常**或**邏輯錯誤**。 例如,當我們嘗試打開不存在的文件(用于讀取)(`FileNotFoundError`),嘗試將數字除以零(`ZeroDivisionError`)或嘗試導入不存在的模塊時(它們),就會發生這種情況。`ImportError`)。 每當發生這些類型的運行時錯誤時,Python 都會創建一個異常對象。 如果處理不當,它將打印出對該錯誤的回溯以及有關該錯誤發生原因的一些詳細信息。 讓我們看一下 Python 如何處理這些錯誤: ```py >>> 1 / 0 Traceback (most recent call last): File "<string>", line 301, in runcode File "<interactive input>", line 1, in <module> ZeroDivisionError: division by zero >>> open("imaginary.txt") Traceback (most recent call last): File "<string>", line 301, in runcode File "<interactive input>", line 1, in <module> FileNotFoundError: [Errno 2] No such file or directory: 'imaginary.txt' ``` * * * ## Python 內置異常 非法操作會引發異常。 當發生相應的錯誤時,Python 中會引發許多內置異常。 我們可以使用內置的`local()`函數查看所有內置的異常,如下所示: ```py print(dir(locals()['__builtins__'])) ``` `locals()['__builtins__']`將返回一個內置的異常,函數和屬性的模塊。`dir`允許我們將這些屬性作為字符串列出。 以下列出了 Python 編程中一些常見的內置異常以及導致它們的錯誤: | 異常 | 錯誤原因 | | --- | --- | | `AssertionError` | 在`assert`語句失敗時引發。 | | `AttributeError` | 在屬性分配或引用失敗時引發。 | | `EOFError` | 當`input()`函數達到文件結束條件時引發。 | | `FloatingPointError` | 當浮點運算失敗時引發。 | | `GeneratorExit` | 在調用生成器的`close()`方法時引發。 | | `ImportError` | 在找不到導入的模塊時引發。 | | `IndexError` | 當序列的索引超出范圍時引發。 | | `KeyError` | 在字典中找不到鍵時引發。 | | `KeyboardInterrupt` | 當用戶按下中斷鍵(`Ctrl+C`或`Delete`)時引發。 | | `MemoryError` | 在操作內存不足時引發。 | | `NameError` | 在本地或全局范圍內找不到變量時引發。 | | `NotImplementedError` | 通過抽象方法提出。 | | `OSError` | 當系統操作導致系統相關錯誤時引發。 | | `OverflowError` | 在算術運算的結果太大而無法表示時引發。 | | `ReferenceError` | 在使用弱引用代理訪問垃圾收集的引用對象時引發。 | | `RuntimeError` | 當錯誤不屬于任何其他類別時引發。 | | `StopIteration` | 由`next()`函數引發,表明迭代器沒有其他項目可返回。 | | `SyntaxError` | 遇到語法錯誤時由解析器引發。 | | `IndentationError` | 縮進不正確時引發。 | | `TabError` | 當縮進由不一致的制表符和空格組成時引發。 | | `SystemError` | 在解釋器檢測到內部錯誤時引發。 | | `SystemExit` | 由`sys.exit()`函數引發。 | | `TypeError` | 當函數或操作應用于錯誤類型的對象時引發。 | | `UnboundLocalError` | 在對函數或方法中的局部變量進行引用但未將值綁定到該變量時引發。 | | `UnicodeError` | 在發生與 Unicode 相關的編碼或解碼錯誤時引發。 | | `UnicodeEncodeError` | 在編碼過程中發生與 Unicode 相關的錯誤時引發。 | | `UnicodeDecodeError` | 在解碼期間發生與 Unicode 相關的錯誤時引發。 | | `UnicodeTranslateError` | 在翻譯過程中發生 Unicode 相關錯誤時引發。 | | `ValueError` | 當函數獲得正確類型但值不正確的參數時引發。 | | `ZeroDivisionError` | 當除法或模運算的第二個操作數為零時引發。 | 如果需要,我們還可以在 Python 中定義自己的異常。 要了解有關它們的更多信息,請訪問 [Python 用戶定義的異常](/python-programming/user-defined-exception)。 我們可以使用`try`,`except`和`finally`語句在 Python 中處理這些內置的和用戶定義的異常。 要了解有關它們的更多信息,請訪問 [Python `try-except-finally`語句](/python-programming/exception-handling)。
                  <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>

                              哎呀哎呀视频在线观看