2015-06-14 85 views
0

我有一些代碼迭代通過一系列的URL。如果我的代碼中有一個錯誤,因爲其中一個URL不包含有效的JSON正文,我希望將生成的錯誤打印到屏幕上,但隨後代碼會移至下一次迭代。我的代碼的簡單版本是:打印錯誤屏幕,但繼續執行代碼

for a in myurls: 

    try: 

     #mycode 

    except Exception as exc: 

     print traceback.format_exc() 
     print exc 
     pass 

但是,這會將錯誤輸出到屏幕並結束代碼的執行。有沒有辦法讓我的錯誤繼續執行,通過移動到我的'for'循環的下一個迭代?

+1

你真的'進口traceback'?如果你沒有,你會在'try'塊中得到'NameError:name'traceback'not defined'。第二個異常會導致程序退出,但出於與您期望的完全不同的原因。 (另外,這就是爲什麼我們總是要求完整的回溯:它會告訴你是否有這樣的事情發生。) –

回答

2

只需將嘗試 - 除了您希望發生異常的代碼之外。該代碼基本上位於循環內部。

for a in myurls: 
    try: 
     #mycode 

    except Exception as exc: 

     print traceback.format_exc() 
     print exc 
+0

@ gdogg371 Animesh的回答是非常基本的python。重點在於您的異常處理髮生在您指定try/except的級別。 –

+0

@animesh sharma我的歉意,我已經修改我的問題,因爲我的代碼目前的結構是animesh已經回答的方式。我錯誤地輸入了我的問題。任何想法呢? – gdogg371

+0

我想代碼應該可以正常工作。 except塊不應該使for循環中斷。 –