2017-12-29 72 views
0
import traceback 
try: 
    1/0 
except Exception,e: 
    traceback.print_exc() 

出力は以下の通りです:Pythonでは、トレースバックを使用してエラーメッセージを変数に割り当てる方法は?

Traceback (most recent call last): 
File "test_traceback.py", line 3, in <module> 
1/0 
ZeroDivisionError: integer division or modulo by zero 

私は出力を印刷するためにtraceback.print_exc()を使用する必要はありませんが。代わりに、出力を変数に保存します。どうやってやるの?

+1

関連:[変数にtraceback/sys.exc_info()の値を保存する方法](https://stackoverflow.com/questions/8238360/how-to-save-traceback-sys-exc-info変数の値) –

答えて

0

この試し:Python documentationから

import traceback 

try: 
    1/0 
except Exception: 
    trace = traceback.format_exc() 
    print trace 

import traceback 
try: 
    1/0 
except Exception as e: 
    error = traceback.format_exc() 


print(error) 
3

使用traceback.format_exc()

traceback.format_exc([リミット])

これはprint_exc(limit)と似ていますが、ファイルに出力する代わりに文字列を返します。

関連する問題