C# Windows工作流-TerminateActivity导致工作流出错?

C# Windows工作流-TerminateActivity导致工作流出错?,c#,workflow,workflow-foundation,workflow-activity,C#,Workflow,Workflow Foundation,Workflow Activity,我正在FaultActivityHandler中处理一个异常,最后,我希望结束工作流。为此,我向故障处理程序添加了TerminateActivity。看起来这会导致工作流出现故障。有更好的方法吗?我可以使用if-else来检查错误标志,但这将导致大量嵌套的if-else,其中右侧除了跳到工作流的末尾外什么也不做 我是否缺少一个明显的方法来优雅地结束工作流,或者在我结束工作流时由于异常而出现故障?我认为最简单的方法是添加一个包含一些自定义异常的一次性活动,并在工作流级别捕获该自定义异常。这样,工作

我正在FaultActivityHandler中处理一个异常,最后,我希望结束工作流。为此,我向故障处理程序添加了TerminateActivity。看起来这会导致工作流出现故障。有更好的方法吗?我可以使用if-else来检查错误标志,但这将导致大量嵌套的if-else,其中右侧除了跳到工作流的末尾外什么也不做


我是否缺少一个明显的方法来优雅地结束工作流,或者在我结束工作流时由于异常而出现故障?

我认为最简单的方法是添加一个包含一些自定义异常的一次性活动,并在工作流级别捕获该自定义异常。这样,工作流将正常结束,但所有其他活动都将被跳过。

我想我没有按照WF的方式思考。在我看来,工作流中的终点是处理这个问题的自然方式,而不是抛出异常(顺便说一句,后者在我的开发系统上非常非常慢)。这就是为什么在不需要异常时不抛出异常的原因。但是,如果出现意外问题,并且您希望停止处理,那么这就是解决方法。在常规代码中,这没有什么不同,否则您将在代码中添加大量额外的测试。在我看来,简单的端点更合适。我已经捕获了异常并处理了它,但工作流现在需要结束。嵌套if-else语句似乎不是解决这个问题的好方法,就像再次抛出异常一样。