我正在使用ScriptEngine.SetTrace(),我想知道如何在发生异常时使用TracebackDelegate“payload”变量中包含的元组?我想获得异常的消息,方法名称,行号,文件名等。我可以从frame.f_code和frame.f_lineno获取最后三个,但其他信息似乎包含在有效负载元组对象中,我不知道如何提取。
答案 0 :(得分: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);