簡體   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