我有一个带有“Catch Exception”部分的BizTalk(2006 R2)作用域,其中我放置了一个简单的Expression形状来将异常消息存储在编排变量中。
问题是,如果我选择异常类型为“常规异常”,那么我不会提供异常对象名称。在这种情况下,我在哪里检索异常信息?
然后我想我会选择异常类型作为System.Exception,但这是不可能的。我只能选择更具体的.NET异常类型。
我做错了还是BizTalk如何运作?
答案 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上下文中的所有异常。
请查看截图供您参考。