2015-06-14 83 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循环中断。 –