View Javadoc
1   package org.davidmoten.kool.internal.operators.single;
2   
3   import java.util.function.Consumer;
4   
5   import org.davidmoten.kool.Single;
6   
7   public final class SingleDoOnError<T> implements Single<T> {
8   
9       private final Consumer<? super Throwable> consumer;
10      private final Single<T> single;
11  
12      public SingleDoOnError(Consumer<? super Throwable> consumer, Single<T> single) {
13          this.consumer = consumer;
14          this.single = single;
15      }
16  
17      @Override
18      public T get() {
19          try {
20              return single.get();
21          } catch (Throwable e) {
22              consumer.accept(e);
23              throw e;
24          }
25      }
26  
27  }