Как обрабатывать обработку ошибок в одном месте в rxjava с помощью обертки

Привет, я сделал CallbackWrapper для обработки ошибок в одном месте в rxjava .

 abstract class CallbackWrapper<T : BaseResponse> : DisposableObserver<T>() { protected abstract fun onSuccess(t: T) override fun onNext(t: T) { onSuccess(t) } override fun onError(e: Throwable) { when (e) { is HttpException -> { val responseBody = (e as HttpException).response().errorBody() responseBody?.let { // todo } } is SocketTimeoutException -> { // todo } is IOException -> { // todo } else -> { e.message?.let { // todo } } } } override fun onComplete() { } private fun getErrorMessage(responseBody: ResponseBody): String { val jsonObject = JSONObject(responseBody.string()) return jsonObject.getString(("message")) } } 

Я называю это как в моем классе LoginViewModel .

 apiHelper.doServerLoginApiCall(email, password) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribeWith(object : CallbackWrapper<LoginResponse>() { override fun onSuccess(loginResponse: LoginResponse) { progressVisibility.set(View.GONE) } }) 

У меня есть метод onError в CallbackWrapper который уведомляет, есть ли какая-либо ошибка. Я не знаю, как отправить эту информацию об ошибке, чтобы просмотреть модель. Я использую шаблон проектирования MVVM.

Может кто-нибудь намекнуть мне?