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 }