Exception 在哪里可以获得subscribe()方法中抛出的异常?

Exception 在哪里可以获得subscribe()方法中抛出的异常?,exception,observable,reactive-programming,rx-android,rx-java2,Exception,Observable,Reactive Programming,Rx Android,Rx Java2,我用的是rxAndroid 我读了很多文件,但仍然没有找到解决方案,也许我错过了, 所以请给我一个指导。 在这里,我创建了一个observable,它可能会在subscribe方法中引发异常 return Observable.create(new ObservableOnSubscribe<Project>() { @Override public void subscribe(@NonNull ObservableEmitter&l

我用的是rxAndroid
我读了很多文件,但仍然没有找到解决方案,也许我错过了, 所以请给我一个指导。 在这里,我创建了一个observable,它可能会在subscribe方法中引发异常

return Observable.create(new ObservableOnSubscribe<Project>() {
            @Override
            public void subscribe(@NonNull ObservableEmitter<Project> e) throws Exception {
                e.onNext(projectRepository.readDetails(project.getId()));
                e.onComplete();
            }
        });
而且我找不到任何方法来处理subscibe()方法中抛出的异常,观察者的onError()将不会收到任何通知


谢谢。

手动创建可观察对象时,您必须捕获任何异常并手动将其传递给
onError()

return Observable.create(new ObservableOnSubscribe<Project>() {
    @Override
    public void subscribe(@NonNull ObservableEmitter<Project> e) throws Exception {
        try {
            e.onNext(projectRepository.readDetails(project.getId()));
            e.onComplete();
        }
        catch (Exception ex) {
            e.onError(ex);
        }
    }
});
Observable.fromCallable(() -> projectRepository.readDetails(project.getId()));
如果调用失败,这将发出信号
onError()

Observable.fromCallable(() -> projectRepository.readDetails(project.getId()));