@@ -205,14 +205,14 @@ public Subscription subscribe(Observer<T> observer) {
205205 } catch (OnErrorNotImplementedException e ) {
206206 // special handling when onError is not implemented ... we just rethrow
207207 throw e ;
208- } catch (Exception e ) {
208+ } catch (Throwable e ) {
209209 // if an unhandled error occurs executing the onSubscribe we will propagate it
210210 try {
211211 observer .onError (hook .onSubscribeError (this , e ));
212212 } catch (OnErrorNotImplementedException e2 ) {
213213 // special handling when onError is not implemented ... we just rethrow
214214 throw e2 ;
215- } catch (Exception e2 ) {
215+ } catch (Throwable e2 ) {
216216 // if this happens it means the onError itself failed (perhaps an invalid function implementation)
217217 // so we are unable to propagate the error correctly and will just throw
218218 RuntimeException r = new RuntimeException ("Error occurred attempting to subscribe [" + e .getMessage () + "] and then again while trying to pass to onError." , e2 );
@@ -295,7 +295,7 @@ public void onCompleted() {
295295 }
296296
297297 @ Override
298- public void onError (Exception e ) {
298+ public void onError (Throwable e ) {
299299 handleError (e );
300300 Object onError = callbacks .get ("onError" );
301301 if (onError != null ) {
@@ -344,7 +344,7 @@ public void onCompleted() {
344344 }
345345
346346 @ Override
347- public void onError (Exception e ) {
347+ public void onError (Throwable e ) {
348348 handleError (e );
349349 throw new OnErrorNotImplementedException (e );
350350 }
@@ -379,7 +379,7 @@ public void onCompleted() {
379379 }
380380
381381 @ Override
382- public void onError (Exception e ) {
382+ public void onError (Throwable e ) {
383383 handleError (e );
384384 throw new OnErrorNotImplementedException (e );
385385 }
@@ -421,7 +421,7 @@ public void onCompleted() {
421421 }
422422
423423 @ Override
424- public void onError (Exception e ) {
424+ public void onError (Throwable e ) {
425425 handleError (e );
426426 Functions .from (onError ).call (e );
427427 }
@@ -438,7 +438,7 @@ public Subscription subscribe(final Object onNext, final Object onError, Schedul
438438 return subscribeOn (scheduler ).subscribe (onNext , onError );
439439 }
440440
441- public Subscription subscribe (final Action1 <T > onNext , final Action1 <Exception > onError ) {
441+ public Subscription subscribe (final Action1 <T > onNext , final Action1 <Throwable > onError ) {
442442 if (onNext == null ) {
443443 throw new IllegalArgumentException ("onNext can not be null" );
444444 }
@@ -459,7 +459,7 @@ public void onCompleted() {
459459 }
460460
461461 @ Override
462- public void onError (Exception e ) {
462+ public void onError (Throwable e ) {
463463 handleError (e );
464464 onError .call (e );
465465 }
@@ -472,7 +472,7 @@ public void onNext(T args) {
472472 });
473473 }
474474
475- public Subscription subscribe (final Action1 <T > onNext , final Action1 <Exception > onError , Scheduler scheduler ) {
475+ public Subscription subscribe (final Action1 <T > onNext , final Action1 <Throwable > onError , Scheduler scheduler ) {
476476 return subscribeOn (scheduler ).subscribe (onNext , onError );
477477 }
478478
@@ -504,7 +504,7 @@ public void onCompleted() {
504504 }
505505
506506 @ Override
507- public void onError (Exception e ) {
507+ public void onError (Throwable e ) {
508508 handleError (e );
509509 Functions .from (onError ).call (e );
510510 }
@@ -521,7 +521,7 @@ public Subscription subscribe(final Object onNext, final Object onError, final O
521521 return subscribeOn (scheduler ).subscribe (onNext , onError , onComplete );
522522 }
523523
524- public Subscription subscribe (final Action1 <T > onNext , final Action1 <Exception > onError , final Action0 onComplete ) {
524+ public Subscription subscribe (final Action1 <T > onNext , final Action1 <Throwable > onError , final Action0 onComplete ) {
525525 if (onNext == null ) {
526526 throw new IllegalArgumentException ("onNext can not be null" );
527527 }
@@ -545,7 +545,7 @@ public void onCompleted() {
545545 }
546546
547547 @ Override
548- public void onError (Exception e ) {
548+ public void onError (Throwable e ) {
549549 handleError (e );
550550 onError .call (e );
551551 }
@@ -558,7 +558,7 @@ public void onNext(T args) {
558558 });
559559 }
560560
561- public Subscription subscribe (final Action1 <T > onNext , final Action1 <Exception > onError , final Action0 onComplete , Scheduler scheduler ) {
561+ public Subscription subscribe (final Action1 <T > onNext , final Action1 <Throwable > onError , final Action0 onComplete , Scheduler scheduler ) {
562562 return subscribeOn (scheduler ).subscribe (onNext , onError , onComplete );
563563 }
564564
@@ -583,7 +583,7 @@ public <R> ConnectableObservable<R> multicast(Subject<T, R> subject) {
583583 *
584584 * @param e
585585 */
586- private void handleError (Exception e ) {
586+ private void handleError (Throwable e ) {
587587 // onError should be rare so we'll only fetch when needed
588588 RxJavaPlugins .getInstance ().getErrorHandler ().handleError (e );
589589 }
@@ -618,7 +618,7 @@ public Subscription call(Observer<T> t1) {
618618 */
619619 private static class ThrowObservable <T > extends Observable <T > {
620620
621- public ThrowObservable (final Exception exception ) {
621+ public ThrowObservable (final Throwable exception ) {
622622 super (new Func1 <Observer <T >, Subscription >() {
623623
624624 /**
@@ -956,7 +956,7 @@ public static <T> Observable<T> empty() {
956956 * @return an Observable that invokes the {@link Observer}'s
957957 * {@link Observer#onError onError} method when the Observer subscribes to it
958958 */
959- public static <T > Observable <T > error (Exception exception ) {
959+ public static <T > Observable <T > error (Throwable exception ) {
960960 return new ThrowObservable <T >(exception );
961961 }
962962
@@ -1767,7 +1767,7 @@ public static <T> Observable<T> never() {
17671767 * encounters an error
17681768 * @return an Observable, identical to the source Observable with its behavior modified as described
17691769 */
1770- public static <T > Observable <T > onErrorResumeNext (final Observable <T > that , final Func1 <Exception , Observable <T >> resumeFunction ) {
1770+ public static <T > Observable <T > onErrorResumeNext (final Observable <T > that , final Func1 <Throwable , Observable <T >> resumeFunction ) {
17711771 return create (OperationOnErrorResumeNextViaFunction .onErrorResumeNextViaFunction (that , resumeFunction ));
17721772 }
17731773
@@ -1800,11 +1800,11 @@ public static <T> Observable<T> onErrorResumeNext(final Observable<T> that, fina
18001800 public static <T > Observable <T > onErrorResumeNext (final Observable <T > that , final Object resumeFunction ) {
18011801 @ SuppressWarnings ("rawtypes" )
18021802 final FuncN _f = Functions .from (resumeFunction );
1803- return onErrorResumeNext (that , new Func1 <Exception , Observable <T >>() {
1803+ return onErrorResumeNext (that , new Func1 <Throwable , Observable <T >>() {
18041804
18051805 @ SuppressWarnings ("unchecked" )
18061806 @ Override
1807- public Observable <T > call (Exception e ) {
1807+ public Observable <T > call (Throwable e ) {
18081808 return (Observable <T >) _f .call (e );
18091809 }
18101810 });
@@ -1866,7 +1866,7 @@ public static <T> Observable<T> onErrorResumeNext(final Observable<T> that, fina
18661866 * would otherwise cause it to invoke {@link Observer#onError onError}
18671867 * @return an Observable, identical to the source Observable with its behavior modified as described
18681868 */
1869- public static <T > Observable <T > onErrorReturn (final Observable <T > that , Func1 <Exception , T > resumeFunction ) {
1869+ public static <T > Observable <T > onErrorReturn (final Observable <T > that , Func1 <Throwable , T > resumeFunction ) {
18701870 return create (OperationOnErrorReturn .onErrorReturn (that , resumeFunction ));
18711871 }
18721872
@@ -3537,7 +3537,7 @@ public Observable<T> observeOn(Scheduler scheduler) {
35373537 * @return an Observable that emits the items and notifications embedded in the
35383538 * {@link Notification} objects emitted by the source Observable
35393539 * @see <a href="http://msdn.microsoft.com/en-us/library/hh229047(v=vs.103).aspx">MSDN: Observable.dematerialize</a>
3540- * @throws Exception
3540+ * @throws Throwable
35413541 * if the source Observable is not of type {@code Observable<Notification<T>>}.
35423542 */
35433543 @ SuppressWarnings ("unchecked" )
@@ -3571,7 +3571,7 @@ public <T2> Observable<T2> dematerialize() {
35713571 * encounters an error
35723572 * @return the original Observable, with appropriately modified behavior
35733573 */
3574- public Observable <T > onErrorResumeNext (final Func1 <Exception , Observable <T >> resumeFunction ) {
3574+ public Observable <T > onErrorResumeNext (final Func1 <Throwable , Observable <T >> resumeFunction ) {
35753575 return onErrorResumeNext (this , resumeFunction );
35763576 }
35773577
@@ -3601,11 +3601,11 @@ public Observable<T> onErrorResumeNext(final Func1<Exception, Observable<T>> res
36013601 public Observable <T > onErrorResumeNext (final Object resumeFunction ) {
36023602 @ SuppressWarnings ("rawtypes" )
36033603 final FuncN _f = Functions .from (resumeFunction );
3604- return onErrorResumeNext (this , new Func1 <Exception , Observable <T >>() {
3604+ return onErrorResumeNext (this , new Func1 <Throwable , Observable <T >>() {
36053605
36063606 @ Override
36073607 @ SuppressWarnings ("unchecked" )
3608- public Observable <T > call (Exception e ) {
3608+ public Observable <T > call (Throwable e ) {
36093609 return (Observable <T >) _f .call (e );
36103610 }
36113611 });
@@ -3664,7 +3664,7 @@ public Observable<T> onErrorResumeNext(final Observable<T> resumeSequence) {
36643664 * Observable encounters an error
36653665 * @return the original Observable with appropriately modified behavior
36663666 */
3667- public Observable <T > onErrorReturn (Func1 <Exception , T > resumeFunction ) {
3667+ public Observable <T > onErrorReturn (Func1 <Throwable , T > resumeFunction ) {
36683668 return onErrorReturn (this , resumeFunction );
36693669 }
36703670
@@ -3694,11 +3694,11 @@ public Observable<T> onErrorReturn(Func1<Exception, T> resumeFunction) {
36943694 public Observable <T > onErrorReturn (final Object resumeFunction ) {
36953695 @ SuppressWarnings ("rawtypes" )
36963696 final FuncN _f = Functions .from (resumeFunction );
3697- return onErrorReturn (this , new Func1 <Exception , T >() {
3697+ return onErrorReturn (this , new Func1 <Throwable , T >() {
36983698
36993699 @ Override
37003700 @ SuppressWarnings ("unchecked" )
3701- public T call (Exception e ) {
3701+ public T call (Throwable e ) {
37023702 return (T ) _f .call (e );
37033703 }
37043704 });
@@ -4376,7 +4376,7 @@ public Subscription call(Observer<String> Observer) {
43764376 verify (aObserver , times (1 )).onNext ("one" );
43774377 verify (aObserver , times (1 )).onNext ("two" );
43784378 verify (aObserver , times (1 )).onNext ("three" );
4379- verify (aObserver , Mockito .never ()).onError (any (Exception .class ));
4379+ verify (aObserver , Mockito .never ()).onError (any (Throwable .class ));
43804380 verify (aObserver , times (1 )).onCompleted ();
43814381 }
43824382
@@ -4453,7 +4453,7 @@ public void testMaterializeDematerializeChaining() {
44534453
44544454 verify (observer , times (1 )).onNext (1 );
44554455 verify (observer , times (1 )).onCompleted ();
4456- verify (observer , times (0 )).onError (any (Exception .class ));
4456+ verify (observer , times (0 )).onError (any (Throwable .class ));
44574457 }
44584458
44594459 /**
@@ -4467,7 +4467,7 @@ public void testMaterializeDematerializeChaining() {
44674467 public void testCustomObservableWithErrorInObserverAsynchronous () throws InterruptedException {
44684468 final CountDownLatch latch = new CountDownLatch (1 );
44694469 final AtomicInteger count = new AtomicInteger ();
4470- final AtomicReference <Exception > error = new AtomicReference <Exception >();
4470+ final AtomicReference <Throwable > error = new AtomicReference <Throwable >();
44714471 Observable .create (new Func1 <Observer <String >, Subscription >() {
44724472
44734473 @ Override
@@ -4499,7 +4499,7 @@ public void onCompleted() {
44994499 }
45004500
45014501 @ Override
4502- public void onError (Exception e ) {
4502+ public void onError (Throwable e ) {
45034503 error .set (e );
45044504 System .out .println ("error" );
45054505 e .printStackTrace ();
@@ -4533,7 +4533,7 @@ public void onNext(String v) {
45334533 @ Test
45344534 public void testCustomObservableWithErrorInObserverSynchronous () {
45354535 final AtomicInteger count = new AtomicInteger ();
4536- final AtomicReference <Exception > error = new AtomicReference <Exception >();
4536+ final AtomicReference <Throwable > error = new AtomicReference <Throwable >();
45374537 Observable .create (new Func1 <Observer <String >, Subscription >() {
45384538
45394539 @ Override
@@ -4553,7 +4553,7 @@ public void onCompleted() {
45534553 }
45544554
45554555 @ Override
4556- public void onError (Exception e ) {
4556+ public void onError (Throwable e ) {
45574557 error .set (e );
45584558 System .out .println ("error" );
45594559 e .printStackTrace ();
@@ -4584,7 +4584,7 @@ public void onNext(String v) {
45844584 @ Test
45854585 public void testCustomObservableWithErrorInObservableSynchronous () {
45864586 final AtomicInteger count = new AtomicInteger ();
4587- final AtomicReference <Exception > error = new AtomicReference <Exception >();
4587+ final AtomicReference <Throwable > error = new AtomicReference <Throwable >();
45884588 Observable .create (new Func1 <Observer <String >, Subscription >() {
45894589
45904590 @ Override
@@ -4601,7 +4601,7 @@ public void onCompleted() {
46014601 }
46024602
46034603 @ Override
4604- public void onError (Exception e ) {
4604+ public void onError (Throwable e ) {
46054605 error .set (e );
46064606 System .out .println ("error" );
46074607 e .printStackTrace ();
@@ -4803,7 +4803,7 @@ public void call(Object t1) {
48034803
48044804 });
48054805 fail ("expected exception" );
4806- } catch (Exception e ) {
4806+ } catch (Throwable e ) {
48074807 assertEquals ("failure" , e .getMessage ());
48084808 }
48094809 }
@@ -4822,7 +4822,7 @@ public void call(Object t1) {
48224822 @ Test
48234823 public void testErrorThrownWithoutErrorHandlerAsynchronous () throws InterruptedException {
48244824 final CountDownLatch latch = new CountDownLatch (1 );
4825- final AtomicReference <Exception > exception = new AtomicReference <Exception >();
4825+ final AtomicReference <Throwable > exception = new AtomicReference <Throwable >();
48264826 Observable .create (new Func1 <Observer <String >, Subscription >() {
48274827
48284828 @ Override
@@ -4833,7 +4833,7 @@ public Subscription call(final Observer<String> observer) {
48334833 public void run () {
48344834 try {
48354835 observer .onError (new RuntimeException ("failure" ));
4836- } catch (Exception e ) {
4836+ } catch (Throwable e ) {
48374837 // without an onError handler it has to just throw on whatever thread invokes it
48384838 exception .set (e );
48394839 }
0 commit comments