深入理解python try異常處理機制
#python的try語句有兩種風格#一:種是處理異常(try/except/else)#二:種是無論是否發(fā)生異常都將執(zhí)行最后的代碼(try/finally)try/except/else風格try: <語句> #運行別的代碼except <名字>: <語句> #如果在try部份引發(fā)了'name'異常except <名字>,<數(shù)據(jù)>: <語句> #如果引發(fā)了'name'異常,獲得附加的數(shù)據(jù)else: <語句> #如果沒有異常發(fā)生#try的工作原理是,當開始一個try語句后,python就在當前程序的上下文中作標記,這樣當異常出現(xiàn)時就可以回到這里,try子句先執(zhí)行,接下來會發(fā)生什么依賴于執(zhí)行時是否出現(xiàn)異常。#1、如果當try后的語句執(zhí)行時發(fā)生異常,python就跳回到try并執(zhí)行第一個匹配該異常的except子句,異常處理完畢,控制流就通過整個try語句(除非在處理異常時又引發(fā)新的異常)。#2、如果在try后的語句里發(fā)生了異常,卻沒有匹配的except子句,異常將被遞交到上層的try,或者到程序的最上層(這樣將結(jié)束程序,并打印缺省的出錯信息)。#3、如果在try子句執(zhí)行時沒有發(fā)生異常,python將執(zhí)行else語句后的語句(如果有else的話),然后控制流通過整個try語句。try/finally風格try: <語句>finally: <語句> #退出try時總會執(zhí)行python總會執(zhí)行finally子句,無論try子句執(zhí)行時是否發(fā)一異常。1、如果沒有發(fā)生異常,python運行try子句,然后是finally子句,然后繼續(xù)。2、如果在try子句發(fā)生了異常,python就會回來執(zhí)行finally子句,然后把異常遞交給上層try,控制流不會通過整個try語句。當你想無論是否發(fā)生異常都確保執(zhí)行某些代碼時,try/finally是有用的。#這個在打開文件的時候有用 finally總是在最后close()文件try 語句子句形式表except: 捕獲所有異常except name: 只捕獲特定的異常except name,value: 捕獲異常和它的附加數(shù)據(jù)(將異常的信息保存到value,)except (name1,name2): 捕獲任何列出的異常else: 如果沒有異常finally: 總是執(zhí)行>>> try: f = open('file.txt')except IOError, e: print eelse: print 'wrong' [Errno 2] No such file or directory: 'file.txt'最新的python版本 支持try/except/finallytry: 1:如果x沒有異常,執(zhí)行z,i x 2:如果x有異常, 一:如果except捕捉到異常則執(zhí)行y,iexcept(name): 二:沒捕捉到,執(zhí)行i,然后返回內(nèi)置異常處理 yelse: zfinally: i以上這篇深入理解python try異常處理機制就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持武林網(wǎng)。
新聞熱點
疑難解答
圖片精選