<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之旅 廣告
                ## 1 Python 異常處理參考 本節簡單羅列 Python 語言中與異常處理有關的常用語句形式及用法。 發生錯誤時通常由系統自動拋出異常,但也可由程序自己拋出并捕獲。 捕獲并處理異常:try-except 發生錯誤時,如果應用程序沒有預定義的處理代碼,則由 Python 的缺省異常處理機制 來處理,處理動作是中止應用程序并顯示錯誤信息。如果程序自己處理異常,可編寫 try-except 語句來定義異常處理代碼。詳見前面各節。 手動拋出異常:raise 異常可以由系統自動拋出,也可以由我們自己的程序手動拋出。Python 提供 raise 語句 用于手動拋出異常。下面的語句拋出一個 ValueError 異常,該異常被 Python 的缺省異常處 理程序捕獲: ``` >>> raise ValueError Traceback (most recent call last): File "&lt;stdin&gt;", line 1, in &lt;module&gt; ValueError ``` 除了錯誤類型,raise 語句還可以帶有錯誤的描述信息: ``` >>> raise ValueError, "Wrong value!" Traceback (most recent call last): File "&lt;stdin&gt;", line 1, in &lt;module&gt; ValueError: Wrong value! ``` 當然也可以由程序自己處理自己拋出的異常,例如 ``` >>> try: raise ValueError except ValueError: print "Exception caught!" Exception caught! ``` 用戶自定義異常 前面程序例子中拋出的都是 Python 的內建異常,我們也可以定義自己的異常類型。為 此目的,需要了解 Python 的異常類 Exception 以及類、子類、繼承等面向對象程序設計概念, 這些概念將在第 x 章中介紹。這里我們用下面的簡單例子演示大致用法,以使讀者先獲得一 個初步印象: ``` >>> class MyException(Exception): pass ``` 這是一個類定義,它在 Python 內建的 Exception 類的基礎上定義了我們自己的異常類 MyException。雖然語句 pass 表明我們并沒有在 Exception 類的基礎上添加任何東西,但 MyException 確實是一個新的異常類,完全可以像 Python 內建的各種異常一樣進行拋出、捕 獲。例如: ``` >>> try: raise MyException except MyException: print "MyException caught!" MyException caught! ``` 確保執行的代碼:try-finally 一般來說,發生異常之后,控制都轉到異常處理代碼,而正常算法部分的代碼不再執行。 Python 的異常處理還允許我們用 try-finally 語句來指定這樣的代碼:不管是否發生異常,這 些代碼都必須執行。這種機制可以用來完成出錯后的掃尾工作。例如: ``` >>> try: x = input("Enter a number: ") print x finally: print "This is final!" Enter a number: 123 123 This is final! ``` 本例中,我們為 x 輸入了一個正常數值 123,故 try 語句塊沒有發生異常,顯示 123 后 又執行了最后的 print 語句。為什么不寫成如下形式呢? ``` x = input("Enter a number: ") print x print "This is final!" ``` 區別在于,當發生錯誤時,這種寫法就有可能未執行最后的 print 語句,而 try-finally 的寫法則在發生異常的情況下也會確保執行最后的 print 語句。例如我們再次執行上面的語 句: ``` >>> try: x = input("Enter a number: ") print x finally: print "This is final!" Enter a number: abc This is final! Traceback (most recent call last): File "&lt;stdin&gt;", line 2, in &lt;module&gt; File "&lt;string&gt;", line 1, in &lt;module&gt; NameError: name 'abc' is not defined ``` 可見,由于輸入數據錯誤,導致 try 語句塊發生異常而無法繼續,但 finally 下面的 語句卻得到了執行。僅當 finally 部分確保執行之后,控制才轉到(缺省)異常處理程序 來處理捕獲到的異常。 一般形式:try-except-finally 這種形式的異常處理語句綜合了 try-except 和 try-finally 的功能。首先執行 try 部分,如 果一切正常,再執行 finally 部分。try 部分如果出錯,則還是要執行 finally 部分,然后再由 except 部分來處理異常。
                  <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>

                              哎呀哎呀视频在线观看