Когда у меня есть поток ниже, где cra sh произойдет в doSomethingThatWillCrash()
, я показал, что он будет пойман в { error -> showError(error.message }
, но это не так, поскольку он уже находится на этапе подписки onNext
disposable = apiRepository.fetch()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
{ result -> doSomethingThatWillCrash() },
{ error -> showError(error.message }
)
Как мне справиться с ошибкой?
Я могу
try {
disposable = apiRepository.fetch()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
{ result -> doSomethingThatWillCrash() },
{ error -> showError(error.message }
)
} catch(e:Exception) { }
или
disposable = apiRepository.fetch()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
{ result -> try { doSomethingThatWillCrash() } catch(e:Exception) { } },
{ error -> showError(error.message }
)
Но это уродливо ... Любое рекомендация?