RxJava: RxJava 2.0.6 : New undeliverable error handling
In the release docs of 2.0.6 it is stated that
If an undeliverable exception is an instance/descendant of NullPointerException, IllegalStateException (UndeliverableException and ProtocolViolationException extend this), IllegalArgumentException, CompositeException, MissingBackpressureException or OnErrorNotImplementedException, the UndeliverableException wrapping doesn’t happen.
What is the reason for that? Also I cannot confirm this behaivor. If I understand correctly
RxJavaPlugins.setErrorHandler(throwable -> {
if (throwable instanceof OnErrorNotImplementedException) {
throw new RuntimeExecutionException(throwable);
}
Timber.e(throwable, "Error handler reported");
});
Single.fromCallable(() -> {
throw new IllegalArgumentException();
}).subscribe(o -> Timber.d("onSuccess"));
This should not be wrapped and thus not be re-thrown. But it is.
About this issue
- Original URL
- State: closed
- Created 7 years ago
- Comments: 18 (18 by maintainers)
Don’t rethrow and let the app crash. On Android, you can call
Thread.currentThread().getUncaughtExceptionHandler().handleException(throwable)
and it will crash the app for you.