Bối rối bằng tiêu đề? Hãy để tôi giải thích: tôi làm thực hiện một kịch bản python, trong một quá trình .NET (# ứng dụng C của tôi là chủ nhà), sử dụng IronPython:Làm thế nào để có được dòng vi phạm khi sử dụng IronPython với C# /. NET làm máy chủ, trên một lỗi thời gian chạy?
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);
Mã hiển thị ở trên đang chạy trong một thread nền (sử dụng Task
lớp học). Tập lệnh chứa lỗi gây ra một số IronPython.Runtime.Exceptionis.TypeErrorException
để bong bóng. Tôi có thể nắm bắt điều này và nhận được tin nhắn.
Nhưng làm thế nào để có được dòng mã hoặc số dòng gây ra ngoại lệ?
Cảm ơn cho giải pháp này. Hoạt động rất tốt! – Marcel
Hoạt động tuyệt vời, cảm ơn. Đối với bất kỳ ai tìm kiếm nó, 'PythonOps' nằm trong' IronPython.Runtime.Operations'. –