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/