如果我這樣做(例如)Python C API:如何獲取異常的字符串表示?
open("/snafu/fnord")
在Python(文件不存在),我得到一個回溯和消息
IOError: [Errno 2] No such file or directory: '/snafu/fnord'
我想獲得上面的字符串與Python的C API(即嵌入在C程序中的Python解釋器)。我需要它作爲一個字符串,而不是輸出到控制檯。
隨着PyErr_Fetch()
我可以得到異常和值的類型對象。對於上面的例子,該值是一個元組:
(2, 'No such file or directory', '/snafu/fnord')
有沒有從我從PyErr_Fetch()
得到的字符串Python解釋器顯示的信息的簡單方法? (一個不涉及構建這樣的字符串爲每種類型的異常你自己。)
的第二個參數是一個元組,而不是字符串。我已經調用PyErr_NormalizeException()。但是PyErr_Fetch()不返回一個異常對象,只返回異常類型。所以我必須自己創建異常對象,我猜?我將PyErr_Fetch()的第二個參數傳遞給構造函數? – ashcatch 2009-06-16 13:56:02