HttpException не пойман onError ()

Я делаю запрос к серверу с использованием Retrofit2 и RxJava2. Когда ответ 200 или 201, все работает нормально. Когда ответ HttpException составляет 409 или 503, и HttpException он не попадает в onError() Observable и приложение падает.

Запрос, который я делаю, выглядит следующим образом:

 @POST("users/sign-up") fun register(@Body register: RegisterBody): Observable<User> 

Этот фрагмент кода, где я делаю запрос, применяется ( applySchedulers() применяется только subscribeOn() и observeOn() ):

 api.register(body) .compose(applySchedulers()) .subscribe( { user -> onNextRegister(user.id, email.toString(), password.toString()) }, { error -> handleRegistrationError(error) }) 

Исключение составляет:

  io.reactivex.exceptions.CompositeException: 2 exceptions occurred. ComposedException 1 : retrofit2.adapter.rxjava2.HttpException: HTTP 503 Unavailable ComposedException 2 : kotlin.NotImplementedError: An operation is not implemented: not implemented 

Как я могу предотвратить сбой приложения, даже если я выполнил onError() для Observable? Обратите внимание, что код из handleRegistrationError(error) все еще выполняется.

CompositeException указывает, что фактическая проблема находится в handleRegistrationError(error) . Как-то вы делаете что-то, что приводит к

 kotlin.NotImplementedError: An operation is not implemented: not implemented 

Скорее всего, это связано с функцией, которую вы реализовали как TODO()

 fun TODO(): Nothing = throw NotImplementedError() 

Поэтому просто выполните это (или удалите TODO() ), и вы можете решить проблему.

Intereting Posts
Поддерживает ли kotlin создание класса, реализующего интерфейс за пределами его файла определения? Kotlin: Как дочерний конструктор может использовать вторичный конструктор своего родителя? Как объявить значение массива в аннотациях Kotlin? Как реализовать проверенный конструктор в Котлине? Параллельные сопрограммы Kotlin Как предотвратить заражение объекта kotlin.Unit от Proguard Настройка высоты и ширины изображения Anko для match_parent Доступ к внешней ценности внутри Критерии запроса для сопоставления 3 из 6 полей Kotlin: Когда функция расширения скрывает реализацию по умолчанию класса? Android: получение IllegalAccessError только на встроенных APK Альтернатива классу Math для поплавков бесконечные последовательности kotlin с функцией итератора Vert.x chunked отвечает данными из базы данных с использованием BLOB и спящего режима Использование RxJava для получения отличного результата с помощью Realm и Retrofit