java - 如何记录 rxJava2 的所有异常的堆栈跟踪?

标签 java android rx-java2

我们需要一个全局处理程序来处理传递给任何订阅者的 onError 的 rxJava2 异常,以仅记录系统任何部分发生的堆栈跟踪。
第一个 版本的 rxJava 中有一个 RxJavaHooks.setOnError 方法,它就是做这件事的。

RxJavaHooks.setOnError(throwable -> Log.w(TAG, "rx error", throwable));

但是在 rxJava2 中那个类被删除了,因为他们注意到逻辑已经被移动到 RxJavaPlugins 类。它有一些类似的命名方法RxJavaPlugins.setErrorHandler,但实际上调用的目的是完全不同的。它只处理无法交付 异常。 我如何记录所有异常,无论它是否被订阅者捕获?
我真的不想将记录器附加到系统中的每个特定可观察对象
Upd:也许你有一些只针对android系统的建议

最佳答案

没有简单的方法可以做到;你必须安装 onSubscribeonAssembly Hook 到所有主要的 react 类型,然后以不干扰的方式包装 Subscriber意外的内部优化。

扩展项目有一个 assembly tracking debug feature它在流程组装时捕获当前线程的堆栈跟踪,并将该信息附加到通过它的 onError 异常中(您实际需要)。

关于java - 如何记录 rxJava2 的所有异常的堆栈跟踪?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45976321/

相关文章:

android - 在 Kotlin 中解析持续时间字符串

java - RxJava/Retrofit2/Java - NetworkBoundResource 未按预期工作

java - SQLite 的动态选择语句

java - 用于接口(interface)的 Kafka JSON 反序列化器

android - "restore scroll position in android Paging adapter when user go to another fragment or activity from adapter"问题

android - 如何延迟 RxJava 2 和 Android 中的 onError()?

android - Dagger 生成多个改造拦截器实例

java - Spring Boot 测试 - @WithMockUser 发布的内容为空

java - 用于从 pom.xml 下载依赖项的 API

Android 无法从 Activity 访问 textView 组件