1

ScriptEngine.SetTrace()を使用していますが、例外が発生したときにTracebackDelegateの「payload」変数に含まれているタプルをどのように使用するのでしょうか。例外のメッセージ、メソッド名、行番号、ファイル名などを取得したいのですが。最後の3つはframe.f_codeとframe.f_linenoから取得できましたが、他の情報はペイロードタプルオブジェクトに含まれているようで、抽出方法がわかりません。

4

1 に答える 1

1

気にしないでください、私はそれを理解しました:

PythonTuple tuple = (PythonTuple)payload;
string err = PythonType.Get__name__((PythonType)tuple[0]);
PythonExceptions.BaseException e = (PythonExceptions.BaseException)tuple[1];
TraceBack tb = (TraceBack)tuple[2];
Debug.WriteLine(err + " " + e.clsException.Message);
于 2012-07-13T00:10:09.023 に答える