Beispiel #1
0
            public override void OnError(Exception error)
            {
                var e = error as TException;

                if (e != null)
                {
                    IObservable <T> next;
                    try
                    {
                        if (parent.errorHandler == Stubs.CatchIgnore <T> )
                        {
                            next = Observable.Empty <T>(); // for avoid iOS AOT
                        }
                        else
                        {
                            next = parent.errorHandler(e);
                        }
                    }
                    catch (Exception ex)
                    {
                        try { observer.OnError(ex); } finally { Dispose(); };
                        return;
                    }

                    var d = new SingleAssignmentDisposable();
                    serialDisposable.Disposable = d;
                    d.Disposable = next.Subscribe(observer);
                }
                else
                {
                    try { observer.OnError(error); } finally { Dispose(); };
                    return;
                }
            }
Beispiel #2
0
            public override void OnError(Exception error)
            {
                TException val = error as TException;

                if (val != null)
                {
                    UniRx.IObservable <T> observable;
                    try
                    {
                        observable = ((!(parent.errorHandler == new Func <TException, UniRx.IObservable <T> >(Stubs.CatchIgnore <T>))) ? parent.errorHandler(val) : Observable.Empty <T>());
                    }
                    catch (Exception error2)
                    {
                        try
                        {
                            observer.OnError(error2);
                        }
                        finally
                        {
                            Dispose();
                        }
                        return;
                    }
                    SingleAssignmentDisposable singleAssignmentDisposable = new SingleAssignmentDisposable();
                    serialDisposable.Disposable           = singleAssignmentDisposable;
                    singleAssignmentDisposable.Disposable = observable.Subscribe(observer);
                }
                else
                {
                    try
                    {
                        observer.OnError(error);
                    }
                    finally
                    {
                        Dispose();
                    }
                }
            }