繁体   English   中英

被捕异常是无

[英]Caught exception is None

我有一个用python2.7编写的脚本,为了调试目的,我使用一个catch-all语句来捕获和打印所有异常。 出于某种原因,捕获的异常有时是None 什么可能导致这种情况发生?

代码是这样的:

from __future__ import print_function

try:
    run_arbitrary_code()
except Exception as e:
    print(e)

输出是:

None
None
None
None

我从来没有经历过例外的None ,并且想知道是什么原因造成的。

为了回答一些评论,该功能做了很多。 它包括图形搜索以及通过套接字发送和接收JSON数据等内容,因此有很多事情可能出错。 但是这里的问题是引发的异常是None ,这对我的调试根本没有帮助。

看一下异常的类型,我敢打赌这是一个KeyError:

try:
    dict()[None]
except Exception as e:
    print(type(e), e)

输出:

<class 'KeyError'> None

你最好打印异常的repr ,而不是print适用的默认str ,例如:

from __future__ import print_function

try:
    run_arbitrary_code()
except Exception as e:
    print(repr(e))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM