這篇文章帶給大家的內容是關於python中的異常處理(程式碼範例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
當我們認為某些程式碼可能會出錯時,就可以用try來執行這段程式碼,如果執行出錯,則後續程式碼不會繼續執行,而是直接跳到錯誤處理程式碼,即except語句區塊,執行完except後,如果有finally語句區塊,則執行finally語句區塊,至此,執行完畢。
python的try語句有兩種風格
處理例外(try/except/else)
種是無論是否發生異常都會執行最後的程式碼(try/finally)
#try/except/else風格
try: <语句> #运行别的代码 except <名字>: <语句> #如果在try部份引发了'name'异常 except <名字>,<数据>: <语句> #如果引发了'name'异常,获得附加的数据 else: <语句> #如果没有异常发生
try的工作原理是,當開始一個try語句後,python就在當前程式的上下文中作標記,這樣當異常出現時就可以回到這裡,try子句先執行,接下來會發生什麼依賴於執行時是否出現異常。
1、如果當try後的語句執行時發生異常,python就跳回try並執行第一個匹配該異常的except子句,異常處理完畢,控制流就通過整個try語句(除非在處理異常時又引發新的異常)。
2、如果在try後的語句裡發生了異常,卻沒有匹配的except子句,異常將被遞交到上層的try,或者到程序的最上層(這樣將結束程序,並打印缺省的出錯訊息)。
3、如果在try子句執行時沒有發生異常,python將執行else語句後的語句(如果有else的話),然後控制流通過整個try語句。
try/finally風格
try: <语句> finally: <语句> #退出try时总会执行finally语句
python總是會執行finally子句,無論try子句執行時是否發一異常。
1、如果沒有發生異常,python運行try子句,然後是finally子句,然後繼續。
2、如果在try子句發生了異常,python就會回來執行finally子句,然後把異常遞交給上層try,控制流不會通過整個try語句。
當你想無論是否發生異常都確保執行某些程式碼時,try/finally是有用的。
這個在開啟檔案的時候有用finally總是在最後close()檔案
try語句子句形式表
except: 擷取所有例外
except name: 只捕獲特定的異常
except name,value: 捕獲異常和它的附加資料(將異常的資訊保存到value,)
except (name1,name2): 捕獲任何列出的異常
else: 如果沒有例外
finally: 總是執行
try: f = open('file.txt') except IOError as e: print e else: print 'wrong'
[Errno 2] No such file or directory: 'file.txt'
try/except/finally:
#1:如果x没有异常,执行z,i #2:如果x有异常, #一:如果except捕捉到异常则执行y,i #二:没捕捉到,执行i,然后返回内置异常处理 try: x except(name): y else: z finally: i
以上是python中的異常處理(程式碼範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!