Cómo manejar el event handling errores en un solo lugar en rxjava usando wrapper

Hola, hice un CallbackWrapper para manejar el event handling errores en un solo lugar en 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")) } } 

Lo estoy llamando más abajo en mi class LoginViewModel .

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

Tengo el método onError en CallbackWrapper que notifica si hay algún error. No sé cómo enviar esta información de error para ver el model. Estoy usando el patrón de layout de MVVM.

¿Alguien puede insinuarme?