닷넷 Observable 안전하게 구독하기
public static IDisposable SubscribeNextSafe<T>(this IObservable<T> source, Action<T> onNext)
{
return SubscribeNextSafeInternal(source, onNext, OnNopException, OnNopCompleted);
}
private static IDisposable SubscribeNextSafeInternal<T>(this IObservable<T> source, Action<T> onNext, Action<Exception> onException, Action onComplete)
{
return source.Subscribe(x =>
{
try
{
onNext.Invoke(x);
}
catch (Exception e)
{
onException.Invoke(e);
Logger.Error(e, $"");
}
}, onException, onComplete);
}
Last updated