我已经定义了以下管道:
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 中异常的条件,则流程只会在异常的第一个实例处(成功地)终止,而不会引发任何异常。我希望能够做两件事:在链上捕获异常,然后跳到下一个事件。
我的问题:处理流程中的错误/异常的正确方法是什么?
谢谢