3

我已经定义了以下管道:

val augmenter1 = new Augmenter1
val augmenter2 = new Augmenter2
val augmenter3 = new Augmenter3
val defaultEventAugmenterPipeline: Duct[Event, Event] = Duct[Event].
    map(augmenter1.augment).
    map(augmenter2.augment).
    map(augmenter3.augment)

和流:

Flow(eventConsumer).append(defaultEventAugmenterPipeline).onComplete(materializer) { ... }

增强器看起来像这样:

class Augmenter1 extends Augmenter[Event] {
   def augment(e: Event): Event = {
      if(someCondition)
         e.addAugmentation(...)
      else
         throw new Exception("someCondition not met!")
      e
   }
}

现在,如果满足导致 Augmenter1 中异常的条件,则流程只会在异常的第一个实例处(成功地)终止,而不会引发任何异常。我希望能够做两件事:在链上捕获异常,然后跳到下一个事件。

我的问题:处理流程中的错误/异常的正确方法是什么?

谢谢

4

0 回答 0