Python2語法簡記(9):異常處理
阿新 • • 發佈:2018-12-13
9 異常處理
try…except…else語句
try:
fh = open("testfile", "w")
fh.write("這是一個測試檔案,用於測試異常!!")
except IOError: # 可以帶多種異常型別except(excep1, excep2),或者不帶任何異常型別
print "Error: 沒有找到檔案或讀取檔案失敗"
else: # else是可選的。沒有異常時執行
print "內容寫入檔案成功"
fh.close()
try…finally語句
try…finally 語句無論是否發生異常都將執行最後的程式碼。
try:
fh = open("testfile", "w")
try:
fh.write("這是一個測試檔案,用於測試異常!!")
finally:
print "關閉檔案"
fh.close() # 這裡如果異常再次被觸發,將異常遞交給上層的try,執行上層的except
except IOError:
print "Error: 沒有找到檔案或讀取檔案失敗"
異常引數:except ValueError, Argument:
# 定義函式 def temp_convert(var): try: return int(var) except ValueError, Argument: print "引數沒有包含數字\n", Argument # 呼叫函式 temp_convert("xyz");
執行結果:
引數沒有包含數字
invalid literal for int() with base 10: ‘xyz’
觸發異常:通過raise。例:raise Exception, "Invalid level!"
通過raise語句自己觸發異常
# 定義函式 def mye( level ): if level < 1: raise Exception,"Invalid level!" # 觸發異常後,後面的程式碼就不會再執行 try: mye(0) # 觸發異常 except Exception,err: print 1,err else: print 2
執行結果:
1 Invalid level!