Como usar Observable.fromCallable () com uma exceção marcada?
Observable.fromCallable()
é ótimo para converter uma única função em um observável. Mas como você lida com exceções verificadas que podem ser lançadas pela função?
A maioria dos exemplos que eu vi usa lambdas e "apenas funciona". Mas como você faria isso sem lambdas? Por exemplo, veja a citação abaixo deeste ótimo artigo:
Observable.fromCallable(() -> downloadFileFromNetwork());
É uma linha agora! Ele lida com exceções verificadas, não mais estranhas Observable.just () e Observable.error () para facilitar a execução de código!
Quando tento implementar o Observable acima sem uma expressão lambda, com base em outros exemplos que já vi e como o Android Studio é concluído automaticamente, obtenho o seguinte:
Observable.fromCallable(new Func0<File>() {
@Override
public File call() {
return downloadFileFromNetwork();
}
}
Mas sedownloadFileFromNetwork()
lança uma exceção verificada, eu tenho que tentar pegá-lo e envolvê-lo em umRuntimeException
. Tem que haver uma maneira melhor! Como o lambda acima suporta isso?!?!