[英]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.