Python异常不在块外打印语句

时间:2014-08-12 21:46:15

标签: python exception

我的代码中有一个简单的循环,应该在一堆dicts中读取。有时候,json会在加载时抛出ValueError(即part_row = json.loads(part)行),我想抓住这个,这样我的程序就可以继续了。

log = logging.getLogger(__name__)
for part in output_rows:
    try:
        part_row = json.loads(part)
        # log.warn('%s', part_row['name'])
    except ValueError:
        log.warn('part "%s" is bad to json', part)
        continue

一切正常,使用try / except EXCEPT进行日志记录。由于某种原因,except语句中的日志语句永远不会完成(或者似乎不是),除非其他日志语句被取消注释。请注意,如果我使用print而不是log,也会发生这种情况。这对我来说似乎是黑魔法。

如果有人对此有任何见解,我们将不胜感激。

更新

不知怎的,今天,我回到代码中,注释掉了这一行,并且代码工作正常,日志记录完全按照预期发生。我不知道发生了什么。我以前做过那个。我会把它归结为编程黑魔法。

更新2

我的一位朋友表示可能是由于过时的.pyc文件造成的。我真的没有办法检查,但值得考虑。

0 个答案:

没有答案