【发布时间】:2018-02-19 22:44:58
【问题描述】:
我试图在 Schedulers IO 线程中执行一些 IO 操作,如果抛出异常,我想向用户显示一些 Toast(当然是在 mainThread 中)。
为此,我使用以下代码:
try {
Observable.interval(0, 15, TimeUnit.SECONDS)
.observeOn(Schedulers.io())
.doOnNext(event -> failingNetworkOperation();)
.observeOn(AndroidSchedulers.mainThread())
.doOnError(throwable ->
Toast.makeText(MainActivity.this, "Error message", LENGTH_SHORT).show())
.subscribe();
} catch(Throwable t) {
//THIS CODE IS NEVER REACHED
//BUT THE APPLICATION DIES.
t.printStackTrace();
}
当方法“failingInputOutputOperation”引发异常时,Throwable IS 被“doOnError”消费者捕获,但应用程序终止。
我将整个 sn-p 放在一个 try/catch 块中,但那里从未捕获到异常。
为什么应用程序会死掉,我该如何正确管理 RxJava 的错误? 非常感谢!
【问题讨论】:
-
请编辑您的问题并发布与崩溃相关的整个 Java 堆栈跟踪。
标签: android rx-java reactive-programming rx-java2