无法捕获IronPython在C#中引发的异常

时间:2016-11-16 11:35:59

标签: c# .net exception-handling ironpython

我运行一个Python脚本,在其中声明一些变量并在发生某些事件时执行一些操作。此脚本是根据存储在数据库中的操作动态生成的,因此可能存在一些尚未定义的变量或语法错误,并且IronPython会抛出异常。例如:

Microsoft.Scripting.Hosting.ScriptEngine py = Python.CreateEngine();
Microsoft.Scripting.Hosting.ScriptScope scope = py.CreateScope();

for (int i = 0; i < gatilhos.Count; i++)
{
     pyScript = "import clr\n";
     pyScript += VlrCampos; // Python variable declarations.
     pyScript += "result = " + gatilhos[i].Regra + "\n";
     try
     {
          py.Execute(pyScript, scope);
     }
     catch (Exception e)
     {
          Console.WriteLine(e.Message);
     }
}

例如,某些时候gatilhos[i].Regra将包含:

  

abc + a

abc 未在该范围内定义,因此抛出IronPython.Runtime.UnboundNameException但执行中断并且不处理异常。

我在这里错过了什么吗?

0 个答案:

没有答案