RxJava UndeliverableException 예외 처리

2401 단어 버그 레코드
이상 발생:io.reactivex.exceptions.UndeliverableException의 발생 원인: onError를 여러 번 호출했습니다. 정상적으로 onError가 한 번 발생하면 Observer 처리가 정상적으로 되고 다른 것은 Error handling이 됩니다. 다음을 통해 여러 번 error를 포착할 수 있습니다.
RxJavaPlugins.setErrorHandler(new Consumer() {
            @Override
            public void accept(Throwable e) {
                if (e instanceof UndeliverableException) {
                    e = e.getCause();
                }
                if ((e instanceof IOException)) {
                    // fine, irrelevant network problem or API that throws on cancellation
                    return;
                }
                if (e instanceof InterruptedException) {
                    // fine, some blocking code was interrupted by a dispose call
                    return;
                }
                if ((e instanceof NullPointerException) || (e instanceof IllegalArgumentException)) {
                    // that's likely a bug in the application
                    Thread.currentThread().getUncaughtExceptionHandler().uncaughtException(Thread.currentThread(), e);
                    return;
                }
                if (e instanceof IllegalStateException) {
                    // that's a bug in RxJava or in a custom operator
                    Thread.currentThread().getUncaughtExceptionHandler().uncaughtException(Thread.currentThread(), e);
                    return;
                }
                Logger.l("Undeliverable exception");
            }
        });

좋은 웹페이지 즐겨찾기