У меня есть общее решение для обработки ошибок в моем приложении, которое должно вызываться всякий раз, когда вызывается onError
. Вместо реализации onError
для каждого subscribe
я сделал это внутри Application
класса:Глобальное errorHandling решение с RxJava только когда onError не реализовано
RxJavaPlugins.getInstance().registerErrorHandler(new RxJavaErrorHandler() {
@Override
public void handleError(final Throwable throwable) {
new ErrorHandler().call(throwable);
}
});
Однако я хотел бы иметь возможность переопределять это путем реализации onError
,
и в соответствии с:
https://github.com/ReactiveX/RxJava/wiki/Plugins#rxjavaerrorhandler
Этот плагин позволяет вам зарегистрировать функцию, которая будет обрабатывать ошибки, возникающие из-за RxJava, но которые не могут обрабатываться обычным RxJava onEr (например, если RxJava пытается распространять ошибку для подписчика, который не реализовал обработчик onError).
Это должен был быть случай, когда я применил
onError
. Однако при запуске кода
handleError
внутри
RxJavaErrorHandler
по-прежнему вызывается первым, хотя я реализовал
onError
.
Update: Согласно zsxwing, вики были обновлены с правильным описанием RxJavaErrorHandler
.
Я думаю, что это неточность в вики ... обработчик 'onError' вызывается или нет, есть' onError', связанный с 'Observer', а не только если его нет ... если никто этого не подтвердит Итак, вы можете попробовать открыть дискуссию по проблемам Github RxJava. –
Есть ли другой способ выполнить то, что я хочу? – maclir
Я думаю, вы используете использование 'throwable instanceof OnErrorNotImplementedException', чтобы проверить, отсутствует ли реализация onError. – zsxwing