0

これが私の例外クラスです。

class SampleError(Exception):
    def __init__(self):
        self.history = Stack()

ここに関数があります、

def f(x):
    raise SampleError

f(x) の実行時に、SampleError が発生している間に作成されたスタックを格納する方法。

いつもありがとう!

4

4 に答える 4

3

「ストア」が分析用の変数に割り当てることを意味する場合は、次を使用しますsys.exc_info()

import sys
try:
    f()
except:
    exc_type, exc, trace = sys.exc_info() # trace is the traceback object

仕様の循環参照に関する警告に注意してください。

于 2012-04-14T07:49:42.393 に答える
1

多分あなたはこのようなことをしようとしていますか???

トレースバックのインポート

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]
于 2012-04-14T08:47:38.910 に答える
1

tracebackモジュールを見てください。これにより、任意のインスタンスからトレースバックを生成できます。後処理を行った後、任意の形式で保存することもできます。

于 2012-04-14T07:45:14.167 に答える
0

例外属性にアクセスしたいだけの場合:

try:
    f()
except SampleError, error:
    history = error.history
于 2012-04-14T09:43:06.830 に答える