gpt4 book ai didi

.net - 在使用 IronPython 和 C#/.NET 作为主机时,如何在运行时错误中获取有问题的行?

转载 作者:太空狗 更新时间:2023-10-29 20:46:26 25 4
gpt4 key购买 nike

被标题搞糊涂了?让我解释:我确实在 .NET 进程(我的 C# 应用程序是主机)中使用 IronPython 执行了一个 python 脚本:

ScriptEngine python = Python.CreateEngine();
ScriptSource pyFromFileSource = python.CreateScriptSourceFromString(script);
CompiledCode pyFromFileCode = pyFromFileSource.Compile();
ScriptRuntime runtime = engine.Runtime;
ScriptScope scope = runtime.CreateScope(); //get a scope where we put in the stuff from the host
scope.SetVariable("lab", this); //allow usage of this class in the script
script.Execute(scope);

上面显示的代码在后台线程中运行(使用 Task 类)。该脚本包含一个错误,导致 IronPython.Runtime.Exceptionis.TypeErrorException 冒泡。我可以捕获这个,并得到消息。
但是如何获取导致异常的脚本行或行号呢?

最佳答案

您可以在异常时调用 PythonOps.GetDynamicStackFrames 并从 DynamicStackFrame 对象中获取行号。

关于.net - 在使用 IronPython 和 C#/.NET 作为主机时,如何在运行时错误中获取有问题的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6468797/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com