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 }