繁体   English   中英

RxJavaErrorHandler可以防止错误导致Android应用崩溃吗?

[英]Can RxJavaErrorHandler prevent an error from crashing the Android app?

我正在尝试抑制RX插件的错误,但该应用程序仍然崩溃。 我是在做错什么还是插件错误处理程序仅用于报告,无法防止崩溃?

    public void testClick(View view) {
    RxJavaPlugins.getInstance().registerErrorHandler(new RxJavaErrorHandler() {
        @Override
        public void handleError(Throwable e) {
            e.printStackTrace();
        }
    });

    final PublishSubject<Integer> hot = PublishSubject.create();
    hot
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(new Action1<Integer>() {
                @Override
                public void call(Integer value) {
                    try {
                        Thread.sleep(10);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    logger.info("Result");
                }
            });
    Observable.range(0, 100).subscribe(hot);
}

如果您在SafeSubscriber类中查看_onError方法,则会发现:

try {
    RxJavaPlugins.getInstance().getErrorHandler().handleError(e);
} catch (Throwable pluginException) {
    handlePluginException(pluginException);
}
try {
    actual.onError(e);
} catch {
    ...
}

您可以看到RxJavaPlugins ErrorHandler不会影响进一步的错误处理,应将其用于记录/报告错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM