当前位置:  开发笔记 > 编程语言 > 正文

在C#中捕获Ironpython异常

如何解决《在C#中捕获Ironpython异常》经验,为你挑选了1个好方法。

我在C#中嵌入了IronPython 2.0.在IronPython中,我用以下内容定义了自己的异常:

def foobarException(Exception):
    pass 

并将其提升到某个地方:

raise foobarException( "This is the Exception Message" )

现在在C#中,我有:

try
{
   callIronPython();
}
catch (Exception e)
{
   // How can I determine the name (foobarException) of the Exception
   // that is thrown from IronPython?   
   // With e.Message, I get "This is the Exception Message"
}

fuzzyman.. 16

当您从C#捕获IronPython异常时,可以使用Python引擎来设置回溯的格式:

catch (Exception e)
{
    ExceptionOperations eo = _engine.GetService(); 
    string error = eo.FormatException(e); 
    Console.WriteLine(error);
}

您可以从回溯中提取异常名称.否则,您将不得不调用IronPython托管API直接从异常实例中检索信息.engine.Operations有这些交互的有用方法.



1> fuzzyman..:

当您从C#捕获IronPython异常时,可以使用Python引擎来设置回溯的格式:

catch (Exception e)
{
    ExceptionOperations eo = _engine.GetService(); 
    string error = eo.FormatException(e); 
    Console.WriteLine(error);
}

您可以从回溯中提取异常名称.否则,您将不得不调用IronPython托管API直接从异常实例中检索信息.engine.Operations有这些交互的有用方法.

推荐阅读
mobiledu2402851203
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有