Python(4)--異常捕獲及處理
異常
異常即非正常狀態,在Python中使用異常物件來表示異常。若程式在編譯或執行過程中發生錯誤,程式的執行過程就會發生改變,丟擲異常物件,程式流進入異常處理。如果異常物件沒有被處理或捕捉,程式就會執行回溯(Traceback)來終止程式。
捕獲異常try...except...else...finally
def sum(num1,num2): num3=None try: #num3 = num1/num2 #sum(2,'ssss')列印ssssssss和'+++++++++++++' num3=int(num1)/int(num2) #sum(2,'ssss')列印999999999和'+++++++++++++' except ZeroDivisionError,ex: print '00000000' except TypeError: print 'ssssssss' except Exception,ex: print '99999999' else: print 'REsss' finally: print '+++++++++++++' return num3 #sum(2,0) #sum(2,'ssss') sum(2,1)
try的工作原理: 執行一個try語句時,python解析器會在當前程式流的上下文中作標記,當出現異常後,程式流能夠根據上下文的標記回到標記位,從而避免終止程式。 1、如果try語句執行發生異常,程式流跳回標記位,並向下匹配執行第一個與該異常匹配的except子句,異常處理完後,程式流就通過整個try語句(除非在處理異常時引發新的異常) 2、如果沒有找到except子句或指定同樣異常型別Exception,來捕獲所有異常,異常被遞交到上層的try,實在沒有找到時,程式將結束,並列印預設的錯誤資訊。 3、若沒有發生異常,執行else語句 4、無論發生異常與否,均執行fianlly語句