Android Develop

[개발글 링크] RxJava 2.x 사용 시 발생하는 UndeliverableException 해결 방법은?

taehwan 2019. 3. 4. 09:11

다음 글은 전체 내용을 공유하지 않고, 새로운 블로그로 링크를 제공하는 글입니다.

이어보기 : https://thdev.tech/android/2019/03/04/RxJava2-Error-handling/


RxJava 2.x 사용 시 발생 가능한 버그를 소개하고, 해결 방법을 소개한다.

RxJava 2.x 버전으로 올리고 나서 UndeliverableException이 발생하는 경우가 생겼다.

이해를 돕기 위해 오류 코드를 그대로 추가하고, 이 오류가 왜 발생하는지와 어떻게 해결할지를 정리한다.

io.reactivex.exceptions.UndeliverableException: The exception could not be delivered to the consumer because it has already canceled/disposed the flow or the exception has nowhere to go to begin with. Further reading: https://github.com/ReactiveX/RxJava/wiki/What's-different-in-2.0#error-handling | java.lang.UnknownError: UnknownError
	at io.reactivex.plugins.RxJavaPlugins.onError(RxJavaPlugins.java:367)
	at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:69)
	at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:57)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.UnknownError: Error message
	at tech.thdev.coroutinesuiextensions.RxJavaTest$test$1$2.apply(RxJavaTest.kt:33)
	at tech.thdev.coroutinesuiextensions.RxJavaTest$test$1$2.apply(RxJavaTest.kt:10)
	at io.reactivex.internal.operators.single.SingleMap$MapSingleObserver.onSuccess(SingleMap.java:57)
	at io.reactivex.internal.operators.single.SingleObserveOn$ObserveOnSingleObserver.run(SingleObserveOn.java:81)
	at io.reactivex.Scheduler$DisposeTask.run(Scheduler.java:578)
	at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:66)
	... 7 more

다행히 위 오류는 발생함과 동시에 로그상에 해결 방법을 잘 제시해주고 있다.


다음 글은 전체 내용을 공유하지 않고, 새로운 블로그로 링크를 제공하는 글입니다.

이어보기 : https://thdev.tech/android/2019/03/04/RxJava2-Error-handling/