これが私の例外クラスです。
class SampleError(Exception):
def __init__(self):
self.history = Stack()
ここに関数があります、
def f(x):
raise SampleError
f(x) の実行時に、SampleError が発生している間に作成されたスタックを格納する方法。
いつもありがとう!
「ストア」が分析用の変数に割り当てることを意味する場合は、次を使用しますsys.exc_info()
。
import sys
try:
f()
except:
exc_type, exc, trace = sys.exc_info() # trace is the traceback object
仕様の循環参照に関する警告に注意してください。
多分あなたはこのようなことをしようとしていますか???
トレースバックのインポート
class SampleError(Exception):
def __init__(self):
self.history = traceback.extract_stack()
def f(x):
raise SampleError
try:
f(5);
except SampleError, e:
print e.history
out = traceback.format_list(e.history)
print out[0]
tracebackモジュールを見てください。これにより、任意のインスタンスからトレースバックを生成できます。後処理を行った後、任意の形式で保存することもできます。
例外属性にアクセスしたいだけの場合:
try:
f()
except SampleError, error:
history = error.history