簡體   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