python中的 try...except...finally 的用法

來源:互聯網
上載者:User

標籤:工作   取值   try   16px   def   nal   final   程式   總結   

python中的 try...except...finally 的用法

author:headsen chen 

date:2018-04-09  16:22:11

try, except, finally是Python中的異常捕捉機制,通常的用法就是try..except...結合起來用,程式捕捉try語句塊中的異常,如果發現異常就把異常交給except中的語句塊進行處理,也就是執行except中的語句,這裡except也可以結合
if...else一起使用。

例1:try中無異常時,執行try和finally中的內容
def read_file():
    try:
        print(‘aaa‘)
    except:
        print(‘error occurs while reading file‘)
    finally:
        print(‘bbbb‘)
read_file()

------>

aaa
bbbb
總結:當try下面的語句正常啟動並執行時候,一直運行。運行完了後運行finaly下面的語句

 

例2:try中有異常時:

當try下面的語句運行後,碰到異常的時候,運行except下面的語句,最後運行finaly下面的語句,finaly語句一般做些資源釋放的工作,比如關閉開啟的檔案等。

def read_file():
    try:
        print(2222222222)
        print(aaa)
    except:
        print(‘error occurs while reading file‘)
    finally:
        print(‘bbbb‘)
read_file()

------>

2222222222     ----------> 證明try中正確的程式會被執行的,配到異常後在調到except部分執行異常的。
error occurs while reading file
bbbb

當然,try...except也可以結合finally使用。則將finally放在最後,finally語句塊的內容通常是做一些後事的處理,比如資源釋放什麼的,並且finally語句塊是無論如何都要執行的,即使在前面的try和except語句塊中出現了return,都現
將finally語句執行完再去執行前面的return語句。下面看一個簡單的例子:

 

例3:try...except...else的用法

   else裡的只有在try下面的語句全部正確執行了才會執行else,try裡面有異常不會else的語句,和finaly不同,finaly是無論try裡有無異常都執行

def read_file():
    try:
        print(2222222222)
    except:
        print(‘error occurs while reading file‘)
    else:
        print(‘bbbb‘)
read_file()


例4:取傳回值1

當異常函數裡的傳回值取值:try裡面正確執行時,整個函數的傳回值採用try下面的傳回值

def read_file():
    try:
        print(2222222222)
        # print(a)
        return 5
    except:
        print(‘error occurs while reading file‘)
        return 6
    finally:
        print(‘bbbb‘)
print(read_file())

----->

2222222222
bbbb
5

 

例5:取傳回值2

try裡面有異常時,整個函數的傳回值採用except下面的傳回值

def read_file():
    try:
        print(2222222222)
        print(a)
        return 5
    except:
        print(‘error occurs while reading file‘)
        return 6
    finally:
        print(‘bbbb‘)
print(read_file())

----->

2222222222
error occurs while reading file
bbbb
6

 

python中的 try...except...finally 的用法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.