我的应用程序中有一个通用的错误处理解决方案,只要 onError
被调用,它就会被调用。我没有为每个 subscribe
实现 onError
,而是在 Application
类中这样做:
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
This plugin allows you to register a function that will handle errors that are raised by RxJava but that cannot be handled by the ordinary RxJava onError notification process (for instance, if RxJava tries to propagate an error to a subscriber that has not implemented an onError handler).
这应该是我实现了onError
的情况。然而,当在 RxJavaErrorHandler
中运行代码 handleError
时,仍然会首先调用,即使我已经实现了 onError
。
更新:
根据 zsxwing 的说法,wiki 已经用 RxJavaErrorHandler
的正确描述进行了更新。
最佳答案
我们在工作中所做的是创建一个观察者的子类,它具有默认的 onError 实现,如果需要,您仍然可以覆盖它。似乎可以解决您的用例。
关于android - 仅在未实现 onError 时使用 RxJava 的全局错误处理解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28627806/