Observable.fromCallable()
ist ideal für die Umwandlung einer einzelnen Funktion in eine Observable. Aber wie gehen Sie mit geprüften Ausnahmen um, die von der Funktion ausgelöst werden?Wie kann Observable.fromCallable() mit einer aktivierten Ausnahme verwendet werden?
Die meisten Beispiele, die ich gesehen habe, verwenden Lambdas und "arbeiten einfach". Aber wie würdest du das ohne Lambdas machen? Siehe zum Beispiel das Zitat unten von this great article:
Observable.fromCallable(() -> downloadFileFromNetwork());
Es ist ein One-Liner jetzt! Es handelt sich um checked Ausnahmen, nicht mehr seltsam Observable.just() und Observable.error() für so einfache Sache wie verzögern Codeausführung!
Wenn ich versuche, die oben beobachtbare ohne Lambda-Ausdruck, den ich gesehen habe auf andere Beispiele basieren zu implementieren und wie Android Studio automatisch vervollständigt, erhalte ich folgendes:
Observable.fromCallable(new Func0<File>() {
@Override
public File call() {
return downloadFileFromNetwork();
}
}
Aber wenn downloadFileFromNetwork()
wirft eine geprüfte Ausnahme, ich muss versuchen, es zu fangen und es in eine RuntimeException
wickeln. Es muss einen besseren Weg geben! Wie unterstützt das obige Lambda das?!?!
Verwenden Sie java.util.concurrent.Callable in der Dokumentation http://reactivex.io/RxJava/javadoc/rx/Observable.html#fromCallable(java.util.concurrent.Callable) – flakes