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) { ... }

Augmenter は次のようになります。

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

ここで、Augmenter1 の例外につながる条件が満たされた場合、フローは例外をスローすることなく、例外の最初のインスタンスで (正常に) 終了します。2 つのことを実行できるようにしたいと考えています。例外をチェーンでキャッチし、次のイベントにスキップします。

私の質問: フロー内のエラー/例外を処理する適切な方法は何ですか?

ありがとう

4

0 に答える 0