Exception handling 处理Biztalk中不包含';不要被示波器的形状抓住

Exception handling 处理Biztalk中不包含';不要被示波器的形状抓住,exception-handling,biztalk,biztalk-2010,biztalk-orchestrations,Exception Handling,Biztalk,Biztalk 2010,Biztalk Orchestrations,让我们考虑一下编排。主要活动发生在一个范围形状内,该范围形状具有2个关联的捕获异常形状:1个用于System.Exception,1个用于General Exception。此编排利用“助手”C#类库和BizTalk scope/catch捕获库中抛出的异常以及库中发生的未处理异常 我想知道的是,我能够创建的问题是:假设一个版本的助手库被发布,突然有一个方法丢失了,而这个方法以前在那里,编排试图调用它。不可避免地会抛出MissingMethodException,这似乎是在到达作用域形状时发生的

让我们考虑一下编排。主要活动发生在一个范围形状内,该范围形状具有2个关联的捕获异常形状:1个用于System.Exception,1个用于General Exception。此编排利用“助手”C#类库和BizTalk scope/catch捕获库中抛出的异常以及库中发生的未处理异常

我想知道的是,我能够创建的问题是:假设一个版本的助手库被发布,突然有一个方法丢失了,而这个方法以前在那里,编排试图调用它。不可避免地会抛出
MissingMethodException
,这似乎是在到达作用域形状时发生的

业务流程未捕获
MissingMethodException
,因此消息被挂起。我意识到,通过适当的测试,这是不应该发生的,但我只是试图涵盖所有的基础,如果他们发生(真的只是出于好奇)


是否有方法捕获这些异常,或者因为它似乎发生在调用作用域之前的某个级别?

您应该知道BizTalk内业务流程中的异常处理方式与.NET中的相同:异常始终从基类System.Exception继承

例如,假设您有一个自定义MissingMethodException(从System.Exception继承),那么您可以捕获MissingMethodException(以获取任何特定数据)或System.Exception。如果没有特定的MissingMethodException异常处理程序,两者都将触发System.Exception异常处理程序

更多信息,我建议阅读

BizTalk业务流程与.NET中该部分的任何其他异常都没有区别


希望这能有所帮助。

您应该知道BizTalk中业务流程中的异常处理方式与.NET中的相同:异常总是从基类System.Exception继承

例如,假设您有一个自定义MissingMethodException(从System.Exception继承),那么您可以捕获MissingMethodException(以获取任何特定数据)或System.Exception。如果没有特定的MissingMethodException异常处理程序,两者都将触发System.Exception异常处理程序

更多信息,我建议阅读

BizTalk业务流程与.NET中该部分的任何其他异常都没有区别


希望这能有所帮助。

我想出来了。我必须包装整个范围,其中包含的形状在另一个范围中使用我的助手库。似乎.dll(用于帮助器类库)必须在到达作用域后立即加载和计算

如果您查看附加的图像,“ValidateWrapper”表达式形状中使用了my helper库,但在调用
MissingMethodException
之前(由于helper类库中缺少方法),“GeneralScope”业务流程甚至都没有使用它shape无法捕获
MissingMethodException
,但当我将GeneralScope包装到另一个作用域中时,
MissingMethodException
就被捕获并可以处理

这一切之所以发生,是因为我通过BizTalk管理控制台更新了helper类资源,因此编译器无法警告丢失的方法……但至少现在我知道,如果再次发生异常,我可以捕获异常


我想出来了。我必须包装整个范围,其中包含的形状在另一个范围中使用我的助手库。似乎.dll(用于帮助器类库)必须在到达作用域后立即加载和计算

如果您查看附加的图像,“ValidateWrapper”表达式形状中使用了my helper库,但在调用
MissingMethodException
之前(由于helper类库中缺少方法),“GeneralScope”业务流程甚至都没有使用它shape无法捕获
MissingMethodException
,但当我将GeneralScope包装到另一个作用域中时,
MissingMethodException
就被捕获并可以处理

这一切之所以发生,是因为我通过BizTalk管理控制台更新了helper类资源,因此编译器无法警告丢失的方法……但至少现在我知道,如果再次发生异常,我可以捕获异常


谢谢你的评论。我确实知道异常是如何工作的,以及如何处理它们。在最初的文章中,我可能没有说得足够清楚,但我正在处理大多数异常,但使用了2个作用域1:System.Exception和2:BizTalk的“常规异常”。问题是,biztalk作用域可能正在预加载帮助程序库,并在进入作用域之前找到丢失的方法,因此捕获程序无法捕获它。感谢您的评论。我确实知道异常是如何工作的,以及如何处理它们。在最初的文章中,我可能没有说得足够清楚,但我正在处理大多数异常,但使用了2个作用域1:System.Exception和2:BizTalk的“常规异常”。问题是,biztalk作用域可能正在预加载帮助程序库,并在进入作用域之前找到丢失的方法,因此捕获程序无法捕获它。