在python無法正確處理程式時,就會發生異常;當發生異常時,我們需要捕獲它並進行處理,否則程式會終止執行。但如何處理異常呢?有哪些方法?接下來的好程式設計師python教程就給大家講解python異常處理機制。
try:包含著可能引發異常的**;
except:則用來捕捉和處理發生的異常;
else:如果try塊中沒有丟擲異常,則執行else塊;
finally:無論是否發生異常都會被執行,通常用來釋放try塊中申請的資源。
五種處理機制:
try....except....
str="leinor"
try:
print(str[100])
except indexerror:
print("下標越界")
print("error")
print("end......")
當程式執行到第2句時發現try語句,進入try語句塊執行,發生異常,回到try語句層,尋找後面是否有except語句,找到except語句後,會呼叫自定義的異常處理器,except將異常處理完畢後,程式繼續往下執行,即執行except下的語句,try語句結束後,繼續向下執行print(end...)語句。
try....except....finally
str="leinor"
try:
print(str[100])
except indexerror:
print("下標越界")
finally:
print("try語句執行結束")
print("end......")
finally語句表示無論異常是否發生,finally中的語句都要執行。
try...finally....
str="leinor"
try:
print(str[100])
finally:
print("try語句執行結束")
print("end......")
finally語句表示,無論異常發生與否,finally中的語句都要執行,但是由於沒有except處理器,finally執行完畢後程式便中斷,這種情況下,最後乙個print語句不會執行,倒數第二個(finally裡的print)語句會執行。如果try語句中沒有異常,那麼最後乙個print會執行。
assert
assert false "error..."
print("end......")
assert語句先判斷assert後面緊跟的語句是true還是false,如果是true則繼續往下執行語句,如果是false則中斷程式,呼叫預設的異常處理器,同時輸出assert false語句逗號後面的提示資訊。程式中斷提示error,後面的語句不執行。
with...as
with open("d:leinor.txt","r") as f:
f.read()
print(2/0)
print("end...")
我們平時在使用類似檔案的流物件時,使用完畢後要呼叫close方法關閉,很麻煩。這裡with...as語句提供了乙個非常方便的替代方法,open開啟檔案後將返回的檔案流物件賦值給f,然後在with語句塊中使用,with語句塊完畢之後,會自動關閉檔案。如果with語句發生異常,會呼叫預設的異常處理器,檔案也會正常關閉,但後面的print語句不執行。
好程式設計師教程分析Vue學習筆記五
好程式設計師教程分析vue學習筆記五,上次我們學習了vue的元件,這次我們來學習一下路由的使用。在vue中,所謂的路由其實跟其他的框架中的路由的概念差不多,即指跳轉的路徑。注意 在vue中,要使用路由,必須匯入vue router.js,並且需要在vue.js下方匯入。具體示例如下 div id c...
程式設計師初入
我是一名入門時間不長的程式設計師,目前主要專注於c語言以及演算法和資料結構的學習和練習。之前雖然對c語言有一定的學習和了解,但因為實際寫 的練習較少,導致目前寫程式的速度和質量都不是很高,我程式設計的目標庸俗又不乏真實,希望以後可以拿到乙份不錯的offer。程式設計的學習我覺得演算法和實際寫程式同等...
好程式設計師Python教程之字串編碼知識小結
提及python字串,你會想到什麼?是ascii,還是unicode?他們之間是如何轉換的?字串編碼和字串有什麼區別?接下來好程式設計師python教程就給大家分享python入門教程中有關字串的知識點。1 字元和位元組 乙個字元不等價於乙個位元組,字元是人類能夠識別的符號,可以有多種表示方法,不同...