Ich möchte, dies zu tun:Wie kann ich Ausnahmen in der Karte Griff() in einer beobachtbaren in RxJava
Observable.just(bitmap)
.map(new Func1<Bitmap, File>() {
@Override
public File call(Bitmap photoBitmap) {
//File creation throws IOException,
//I just want it to hit the onError() inside subscribe()
File photoFile = new File(App.getAppContext().getCacheDir(), "userprofilepic_temp.jpg");
if(photoFile.isFile()) {//delete the file first if it exists otherwise the new file won't be created
photoFile.delete();
}
photoFile.createNewFile(); //saves the file in the cache dir
FileOutputStream fos = new FileOutputStream(photoFile);
photoBitmap.compress(Bitmap.CompressFormat.JPEG, 90, fos);//jpeg format
fos.close();
return photoFile;
}
})
.subscribe(//continue implementation...);
Grundsätzlich im call()
Methode, es Ausnahmen auslösen kann. Wie kann ich den Observer dazu bringen, es in onError()
zu behandeln. Oder ist das nicht der richtige Weg, darüber nachzudenken?
Beachten Sie, dass Operatoren wie 'map' in RxJava 2 das Werfen von geprüften Ausnahmen vom Lambda erlauben. Dies war wirklich ein Konstruktionsfehler in RxJava 1, da der genaue Fehler nicht in 'onError' von der Map Lambda propagiert werden konnte, ohne als 'RuntimeException' umgebrochen zu werden. –