BizTalk范围“捕获异常”常规异常消息

时间:2009-06-08 10:42:07

标签: exception-handling biztalk

我有一个带有“Catch Exception”部分的BizTalk(2006 R2)作用域,其中我放置了一个简单的Expression形状来将异常消息存储在编排变量中。

问题是,如果我选择异常类型为“常规异常”,那么我不会提供异常对象名称。在这种情况下,我在哪里检索异常信息?

然后我想我会选择异常类型作为System.Exception,但这是不可能的。我只能选择更具体的.NET异常类型。

我做错了还是BizTalk如何运作?

5 个答案:

答案 0 :(得分:8)

考虑捕获“通用异常”,相当于在C#中执行“catch {}”块,没有声明异常。所以,是的,那时无法获取异常消息,因为出现的异常可能(可能)是一个不是从System.Exception派生的对象。

但是,当你说你不能选择System.Exception作为要捕获的异常类型时,我不确定你的意思。你当然可以做到这一点,我过去曾多次这样做过。哎呀,再试一遍,就在那里。

你有任何错误吗?它是否出现在类型选择对话框中?

答案 1 :(得分:2)

两种方法的区别在于,一种方法为您提供了异常对象的句柄,另一种方法则没有。当您不需要Exception对象中包含的信息时,应选择“常规异常”。否则,您可以从mscorlib中选择System.Exception类。

答案 2 :(得分:1)

我的朋友你可以选择异常类型“System.Exception”,只需单击左侧面板上的程序集“mscorlib”,然后单击命名空间“System”,右侧将出现(按字母顺序排列)mscorlib的类名,向下滚动你会看到“System.Exception”。

我希望能帮到你......

问候

答案 3 :(得分:0)

我在业务流程的属性窗口中遇到了与其他选择相同的问题。它似乎是Visual Studios中的一个错误。尝试选择.NET程序集时,出现错误,指出“属性无效”。我必须再次关闭并打开VS,消息似乎消失了。

答案 4 :(得分:0)

对于常规异常:如果是C#,则其行为类似于catch{}

当您不想检查异常对象或只想重新抛出异常时,可以使用它。

System.Exception: behaves like catch(exception ex){}

所有C#个异常都继承自此异常类。它没有捕获biztalk上下文中的所有异常。

请查看截图供您参考。

Screenshot 1

Screenshot 2