Python核心編程學習日記之錯誤處理

來源:互聯網
上載者:User
第10章 錯誤處理
  1. 異常參數:無論 reason 只包含一個字串或是由錯誤編號和字串組成的元組, 調用 str(reason) 總會返回一個良好可讀的錯誤原因. 這樣做其實是調用類的特殊方法 __str__().
  2. else子句:在try範圍中沒有異常被檢測到時,執行else子句。
  3. finally子句是無論異常是否發生,是否捕捉都會執行的一段代碼。finally可以僅和try一起使用,也可以和try-except(else也是可選的)一起使用
  4. try-finally語句不是用來捕捉異常的,無論是否發生異常,finally程式碼片段都會被執行
  5. 上下文管理
    1. with語句:基本文法

      with context_expr [as var]:   with_suite

      with語句的目的在於從流程圖中把try,except和finally關鍵字和資源分派釋放相關的代碼統統去掉。with僅能工作於支援上下文管理協議的對象。

    2. 上下文管理協議:

      上下文運算式(context_expr)與上下文管理器:當with語句執行時,便執行內容運算式來獲得一個上下文管理器。它會調用__context__()方法來提供一個內容物件。

      內容物件,with語句塊:內容物件會調用自身的__enter__()方法,完成with語句塊執行前的所有準備工作。方法的傳回值賦值給as後的變數.with語句塊結束之後調用__exit()__方法。

  6. 觸發異常

    1.5之前,標準異常基於字串實現。後來,所有的標準異常都是類。現在可以使用字串,但是不建議。(@deprecated)

    1. raise語句:

      raise[SomeException [, args, [,traceback]]]

      SomeException是觸發異常的名字,必須是一個字串,類或執行個體。args裡包含著該例外可選的參數。異常的參數總是作為一個元組被返回。

      不含任何參數的raise重新觸發前一個異常。如果之前沒有異常,觸發TypeError.

    2. Assert 陳述式::如果斷言成功,不採取任何措施,否則觸發AssertionError的異常。文法如下:assert expression[,argument]
    3. 標準異常都是內建的。它們都從根異常BaseException派生的。直接派生的有Exception,SystemExit,KeyboardInterrupt.其他的內建異常都是Exception的子類。
  7. 建立異常
    1. tempfile模組包含了建立臨時檔案檔案名稱和臨時檔案的方法
    2. 異常和sys模組

      通過sys模組中的exc_info()函數也可以擷取異常。該函數返回三元組,分別是:exc_type,異常類;exc_value,異常類的執行個體;exc_traceback,追蹤(traceback)對象

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.