catch
当出现异常时,此运算符将终止源 observable。
句法
参数
handler:当源 observable 有错误时,这个 observable 将被发射。
返回值
它将返回一个可观察对象,该可观察对象在错误之前具有来自可观察源的值,然后是来自可观察处理程序的值。
例子
from rx import of, operators as op
from datetime import date
test = of(1,2,3,4,5,6)
handler = of(11,12,13,14)
def casetest(e):
if (e==4):
raise Exception('err')
else:
return e
sub1 = test.pipe(
op.map(lambda e : casetest(e)),
op.catch(handler)
)
sub1.subscribe(lambda x: print("The value is {0}".format(x)),
on_error = lambda e: print("Error : {0}".format(e)))
在这个例子中,我们创建了一个异常,当来自 observable 的源值为 4 时,所以第一个 observable 在那里终止,然后是来自处理程序的值。
输出
E:\pyrx>python testrx.py
The value is 1
The value is 2
The value is 3
The value is 11
The value is 12
The value is 13
The value is 14