如何在RxJava2中将一个发生的异常映射到另一个异常? 例如:
doOnError(throwable -> {
if (throwable instanceof FooException) {
throw new BarException();
}
})
在这种情况下,我终于收到了由CompositeException
和FooException
组成的BarException
,但我希望只收到BarException
。救命!
答案 0 :(得分:4)
您可以使用onErrorResumeNext并从中返回Observable.error():
public void Connect(int port)
{
Socket server =
new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
server.Bind(new IPEndPoint(IPAddress.Any, port));
server.Listen(100);
while (true)
{
Socket clientSocket = server.Accept();
}
}
修改强>
此测试通过我:
source.onErrorResumeNext(e -> Observable.error(new BarException()))