Python基礎入門教程:try-finally語句異常處理

2021-12-28 千問千知

收錄於話題 #Python基礎入門教程 90個

在 try-finally 語句中,無論 try 語句塊中是否發生異常,finally 語句塊中的代碼都會執行,其語法格式如下:
try: # 可能出現異常的語句finally:  # 無論是否發生異常都會執行的語句

其中,finally語句塊用於清理在try塊中執行的操作,如釋放其佔有的資源(如文件對象、資料庫連接、圖形句柄等)。

接下來演示try-finally語句的用法,如下所示:

try:  f=open('test.txt','a+')  i=1while True:    str=input('請輸入第%d行字符串(按Q結束):'%i)if str.upper()=='Q':break    f.write(str + '\n')     i += 1 except KeyboardInterrupt:     print('程序中斷!(Ctrl+C)') finally:     f.close()    print('文件關閉')print('程序結束')

打開控制臺(按Window+R組合鍵打開運行窗口,在輸入框中輸入cmd並單擊「確定」按鈕),在命令行模式下進入D:\1000phone目錄,輸入「python13-8.py」,開始執行程序,如下圖所示。

當提示輸入第3行字符串時,在鍵盤中按下Ctrl+C鍵,此時引發KeyboardInterrupt 異常,程序立即執行except語句,之後再執行finally語句。

另外,with-as語句可作為try-finally語句處理異常的替代,其語法格式如下:

with 表達式 [as變量名]:with 語句塊

該語句用於定義一個有終止或清理行為的情況,如釋放線程資源、文件、資料庫連接等,在這些場合下使用with語句將使代碼更加簡潔。在講解文件打開與關閉時,本書使用的就是with-as語句。with後面的表達式的結果將生成一個支持環境管理協議的對象,該對象中定義了__enter__()和__exit__()方法。在with內部的語句塊執行之前,調用__enter__()方法運行構造代碼,如果在as後面指定了一個變量,則將返回值和這個變量名綁定。當with內部語句塊執行結束後,自動調用__exit__()方法,同時執行必要的清理工作,不管執行過程中有無異常發生。以上學習了try-except語句、try-except-else語句和try-finally語句,在實際開發中,經常需要將3種語句結合起來使用,具體如下所示:
try:  #可能出現異常的語句except異常類名as異常對象名:  #處理特定異常的語句except:  #處理多個異常的語句else:  #未捕獲到異常執行的語句finally:  #無論是否發生異常都會執行的語句

程序先執行try語句塊,若try語句塊中的某一語句執行時發生異常,則程序跳轉到except語句,從上到下判斷拋出的異常是否與except後面的異常類相匹配,並執行第一個匹配該異常的except後面的語句塊。若try語句塊中發生了異常,但是沒有找到匹配的異常類,則執行不帶任何匹配類型的except語句塊。若沒有發生任何異常,則程序在執行完try語句塊後直接進入else語句塊。最後,無論程序是否發生異常,都會執行finally語句塊。此教程來源於《Python基礎入門》書籍,想要自學Python的同學可以參考千鋒原創書籍《Python基礎入門》,知識點詳盡,案例豐富,可幫助入門級使用。


相關焦點

  • python妙招-異常處理之try-except
    Python中檢測處理異常是非常重要的,這可以增加代碼的健壯性,我們在寫python程序的時候,會可能會遇到一些不可預料的情況,一旦遇到這些情況,運行時程序便可能會崩潰。比如:讀寫文件時候文件打開錯誤或者文件寫入錯誤,寫爬蟲時網絡請求失敗,返回錯誤404.再或者函數處理一些不確定參數時候,都可以用到異常捕獲。
  • Python異常處理
    解決方案首先我們要了解異常才能處理異常那我們來就說一說異常的定義:程序運行過程中出現的錯誤或遇到的意外情況其次是錯誤的類型分別有:語法錯誤、運行錯誤、邏輯錯誤而我們通常出錯的理由無非是這些:輸入錯誤、下標越界、類型錯誤、操作不當等等接著我們來看一看報錯的構成吧接下來我們的重點來了,在python異常處理會用到
  • python入門——Python中異常處理
    python大數據課堂已經開始了。想轉行大數據,數據挖掘,機器學習,人工智慧的小夥伴可以關注啦。上一篇帶大家了解了python中的I/O函數。今天我們來繼續了解python中的異常處理。調試環境以python3.6環境為例。需要代碼和demo的朋友可以搜索「欒鵬全棧」到我的CSDN博客。
  • python學習筆記(9): try...except 異常捕獲
    目前正在學習python基礎,同時也在leetcode-cn上刷算法題目,有興趣的同學一起哦。最近學習了python如何處理異常,發現一篇比較好的文章,整理了一下,供大家學習研究。一、什麼是異常?當無法正確處理程序時就會出現異常。當異常發生時我們需要捕獲處理它,否則程序會終止執行。
  • python入門學習異常處理類型
    前言異常是指在程序執行過程中發生的一個事件,影響了程序的正常執行,例如:0做了分母。異常是Python對象,表示一個錯誤。當Python腳本發生異常時我們需要捕獲處理它,否則程序會終止執行。在Java語言中我們知道異常的常用結構為try catch組成,有時也會用到finally,那麼在python中異常是如何來處理的呢?python中的異常處理1.python異常簡單語法python異常的簡單語法為try-except-else語法,注意這裡的關鍵字是except而不是Exception,這與java是有區別的。
  • 一文搞懂Python錯誤和異常
    可以看到,異常有不同的類型,發生異常後,其類型名稱會被列印出來。上述這些都是python內置的異常,用戶也可以自定義異常,這裡不做贅述。有python編程經驗的人會知道,python裡用try...except...語句來處理異常情況。
  • 一文看懂Python異常處理(exception, try和raise語句)
    :異常處理沒有異常處理的特點是出現異常會終止程序執行。Try again")print("end")try語句按照如下方式工作;首先,執行try子句(在關鍵字try和關鍵字except之間的語句)如果沒有異常發生,忽略except子句,try子句執行後結束。如果在執行try子句的過程中發生了異常,那麼try子句餘下的部分將被忽略。
  • 面試須知(8):C#的異常處理機制(try...catch...finally)
    在 C# 語言中異常與異常處理語句包括三種形式,即 try catch、try finally、try catch finally。在上述三種異常處理的形式中所用到關鍵字其含義如下:try:一個 try 塊標識了一個將被激活的特定的異常的代碼塊。後跟一個或多個 catch 塊。
  • 小白實例教程——Python異常機制解決思路
    下面是一個拼寫錯誤的例子,print寫成了Print,Python是大小寫敏感的,因此Python將引發一個錯誤:異常在程序中的作用Error Handling:能夠在異常處理語句中捕獲並響應錯誤信息Event Notification:即當我們應用程式在傳入數據並進行數據處理過程中,針對不合法的事件我們是採取拋出異常而不是返回一個表示不合法的數據結果
  • 跟我學java編程—Java異常處理語句finally的用法
    前面講過,如果try語句塊中存在異常,則異常之後的代碼將不再執行。但在某些特定的情況下,不管是否有異常發生,總是要求某些特定的代碼必須被執行。例如,程序中執行資料庫連接的代碼,不管對資料庫的操作是否成功,最後都要關閉資料庫的連接以釋放內存資源,這就需要用到finally語句。
  • 十、python基礎之異常處理結構與程序調試方法
    實驗目的:學習python的異常處理和程序調試實驗環境:已正確安裝python3.51、異常的基本概念異常是指程序運行時引發的錯誤,得不到正確的處理將會導致程序終止運行合理地使用異常處理結構可以使得程序更加健壯,具有更強的容錯性。例如:最常見的除數為0,python會拋出「ZeroDivisionError"異常。
  • python教程之九錯誤和異常處理
    try/excepttry{執行代碼塊}except{發生異常時執行的代碼}try 語句按照如下方式工作;首先,執行 try 子句,如果沒有異常發生,忽略 except 子句,try 子句執行後結束。如果在執行 try 子句的過程中發生了異常,那麼 try 子句餘下的部分將被忽略。如果異常的類型和 except 之後的名稱相符,那麼對應的 except 子句將被執行。如果一個異常沒有與任何的 excep 匹配,那麼這個異常將會傳遞給上層的 try 中。一個 try 語句可能包含多個except子句,分別來處理不同的特定的異常,最多只有一個分支會被執行。
  • 為什麼不推薦使用try-catch-finally處理Java異常?
    1、finally不是必要條件也就是說try-catch-finally中,可以只有try-catch,也可以只有try-finally。2、假設基於try-catch-finally:第一:代碼沒有異常執行順序:try執行完整->catch不執行->finally執行第二:代碼有異常且catch進行捕獲執行順序:try執行部分->跳轉catch捕獲處理
  • python異常處理:try-except語句與else子句的聯合使用
    今日乾貨分享:異常處理的主要目的是防止因外部環境的變化導致程序產生無法控制的錯誤,而不是處理程序的設計錯誤。因此,將所有的代碼都用try語句包含起來的做法是不推薦的,try語句應儘量只包含可能產生異常的代碼。Python中try-except語句還可以與else子句聯合使用,該子句放在except語句之後,表示當try子句沒有出現錯誤時應執行的代碼。其格式如下:try: 可能出錯的語句 .
  • Python學習第50課-處理錯誤和異常
    【每天幾分鐘,從零入門python編程的世界!】finally:print("You have enter a number.")說明:●首先執行try語句(在關鍵字try和關鍵字except之間的語句)。
  • python異常處理筆記
    What:python異常處理是什麼?
  • Python基礎--異常
    概念區分是由於邏輯或語法導致一個程序無法正常運行的問題, 錯誤的特點是有些錯誤是無法預知的通知上層調用者,有錯誤產生需要處理, 用作信號通知是程序出錯時的一種狀態, 當異常發生時,程序不會向下繼續執行,而轉去調用此函數的地方,待處理此錯誤ZeroDivisionError 除(或取模)零StopIteration
  • python基礎:try...except...的詳細用法
    每一個try,都必須至少有一個except1.異常類只能來處理指定的異常情況,如果非指定異常則無法處理s1 = 'hello'try: int(s1)except IndexError as e: # 未捕獲到異常,程序直接報錯 print (e)2.多分支s1 = 'hello'try: int(
  • python中異常報錯的總結分析與處理方式
    今天呢,我們總結了一下經常遇到的異常報錯,以及處理方式。常見異常類型及描述那麼既然知道了以上的所有報錯,我們得知道怎麼處理吧,接下來要說的異常報錯的處理。異常處理:捕捉異常raise語句:格式: raise [exceptionType[,argument][,traceback]]為了調用raise,可以用一個類或者實例的參數來調用。try/except 語句:我們先用一個例子來分析這個問題。
  • 一文讀懂Python中的異常處理
    在Python中,和不部分高級語言一樣,使用了try/except/finally語句塊來處理異常,如果你有其他程式語言的經驗,實踐起來並不難。異常處理語句 try...excpet...finally實例代碼def div(a, b):    try:        print(a / b)    except ZeroDivisionError:        print("Error: b should not be 0 !!")