來處理Python 3.5優雅的錯誤,我使用下面的代碼:回溯在Python 3.5
except:
exc_type, exc_value, exc_traceback = sys.exc_info()
# print("Unable to write feed_item in database")
# print(feeditem_insert_data)
error_insert_data = (
prog_name, 'Unable to populate item for (feed id,ref_feed_id) ('
+ str(feed_id) +',' + str(ref_feed_id) + ') in feed_item table'
, str(exc_type), str(exc_value), repr(traceback.format_tb(exc_traceback)), datetime.datetime.now()
)
cur_error_log.execute(error_insert_stmt,error_insert_data)
continue
在我的計劃中有許多地方添加該代碼後,我觀察怪異的行爲在程序運行長時間運行相同的數據不同於程序運行時間短。我無法確定地說在添加上面的代碼後出現這種行爲。
但我記得在某處讀到,如果我使用回溯比我不得不手動釋放內存。
如果上面的模塊在技術上是正確的或者需要做某些事情以避免問題,請諮詢。
如果'continue'是你添加的部分,它可能是多餘的,或者會改變循環行爲。但除此之外,如果沒有其他代碼,就不可能診斷出什麼是錯的(如果有的話)。 – gil
對不起,我不明白,請幫助我理解。繼續是忽略這個記錄並跳到下一個進行處理 - 它怎麼會有害或與診斷有關。 – Peter
如果'except'後的代碼有更多的代碼,那麼'except'代碼塊中的continue會改變發生異常時的循環方式:如果沒有它,下面的代碼將在異常處理後執行;有了它,下面的代碼將被跳過。如果你在'except'塊之後沒有更多的代碼,那麼'continue'沒有任何區別,並且是多餘的。 – gil