Browse Source

Forward an exception thrown by Current to the observer

Peter Wehrfritz 6 years ago
parent
commit
8fea9a888f

+ 11 - 2
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/ToObservable.cs

@@ -31,7 +31,6 @@ namespace System.Linq
 
                 async void Core()
                 {
-                    // REVIEW: fire-and-forget DisposeAsync?
                     await using (var e = _source.GetAsyncEnumerator(ctd.Token))
                     {
                         do
@@ -57,7 +56,17 @@ namespace System.Linq
                                 return;
                             }
 
-                            observer.OnNext(e.Current);
+                            T v;
+                            try
+                            {
+                                v= e.Current;
+                            }
+                            catch (Exception ex)
+                            {
+                                observer.OnError(ex);
+                                return;
+                            }
+                            observer.OnNext(v);
                         }
                         while (!ctd.Token.IsCancellationRequested);
                     }