Retrofit2とRxJava2を使用してバックエンドサーバーに要求しています。レスポンスが200または201の場合、すべて正常に動作します。サーバーの応答が409または503で、HttpException
がスローされた場合、ObservableのonError()
によってキャッチされず、アプリケーションがクラッシュします。onError()によってHttpExceptionがキャッチされない
私が作っていますリクエストはこのようなものです:
@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
ObservableのためにonError()
を実装しても、アプリがクラッシュするのを防ぐにはどうすればよいですか? handleRegistrationError(error)
のコードがまだ実行されていることに注意してください。
あなたはそうです。私はKotlinには新しく、TODOがNotImplementedErrorを投げるかもしれないことを知らなかった。ご回答有難うございます。受け入れられたとマークされました! –