【问题标题】:Print error to screen but continue code execution将错误打印到屏幕但继续执行代码
【发布时间】:2015-08-30 07:11:25
【问题描述】:

我有一些遍历一系列 URL 的代码。如果由于其中一个 URL 不包含有效的 JSON 正文而在我的代码中出现错误,我希望将生成的错误打印到屏幕上,但随后代码将进入下一次迭代。我的代码的一个简单版本是:

for a in myurls:

    try:

        #mycode

    except Exception as exc:

        print traceback.format_exc()
        print exc
        pass

但是,这会将错误打印到屏幕并结束代码的执行。有没有办法通过移动到我的“for”循环的下一次迭代来让错误继续执行?

【问题讨论】:

  • 你真的import traceback吗?如果你不这样做,你会在你的try 块中得到一个NameError: name 'traceback' is not defined。第二个异常导致程序退出,但原因与您预期的完全不同。 (另外,这就是为什么我们总是要求完整的回溯:它会告诉你是否发生了这样的事情。)

标签: python exception error-handling


【解决方案1】:

只需将 try-except 放在您希望发生异常的代码上。该代码基本上位于循环内。

for a in myurls:
    try:
        #mycode

    except Exception as exc:

        print traceback.format_exc()
        print exc

【讨论】:

  • @gdogg371 Animesh 的回答是非常基本的python。关键是您的异常处理发生在您指定 try/except 的级别。
  • @animesh sharma 我很抱歉,我已经修改了我的问题,因为我的代码目前是按照animesh 回答的方式构建的。我错误地输入了我的问题。那么有什么想法吗?
  • 我猜代码应该可以正常工作。 except 块不应使 for 循环中断。
  • @animesh python3的答案是什么?
猜你喜欢
  • 1970-01-01
  • 2022-11-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多