RuntimeExceptionsはプログラミングエラーを示すはずで、私の観測所の中に何かRuntimeExceptionがスローされたときにアプリケーションがクラッシュするようにします。RuntimeExceptionベストプラクティスを処理する
これを行うにはどのような方法が最適ですか?今私は、このソリューションを(それはKotlinだが、私はそれが理解できる願っています)
fun <T> Observable<T>.subscribeCrashOnRuntimeException(onNext: (T) -> Unit, onError: (Throwable) -> Unit) {
this.subscribe({
onNext(it)
}, { e ->
if (e is RuntimeException) {
throw e
} else {
onError(e)
}
})
}
fun usageExample() {
val observable = Observable.just(1)
observable.subscribeCrashOnRuntimeExceptions(
{ next -> Log.d("TAG", "next: $next") },
{ e -> Log.d("TAG", "error: $e") }
)
}
しかし、私はそれに疑問を持って検討しています。たとえば、このソリューションで特定のRuntimeExceptionsを時折「キャッチ」することは難しいです。おそらく、私はちょうどGoogleの方法を知らない状況に対処するためのよく知られた方法がありますか?
読むあなたがエラーで何をすべきかを決めることができます 'onErrorResumeNext'について。 – akarnokd
'RuntimeExceptionsはプログラミングエラーを示すはずです - 必ずしもそうではありません。不足しているファイルにプログラミングエラーがありますか?ネットワーク接続が切断されていますか?あなたが明示的にクラッシュすることはしませんが、緩和または再試行することがほとんどです。 –
@TassosBassoukosファイルが見つからないのはRuntimeExceptionsではありません。ネットワーク接続が切断された場合でも同じです。あなたがRuntimeExceptionsを理解できないようです。あなたがExceptionの同義語だと思うようです。 –