我创建了一个简单的 rx 运算符,它将字符串流转换为 json 流,并且工作正常。但是,我希望能够引发自定义异常,并且我不知道如何调用on_error
认购方式
操作员称为convertStringToJson
可以在此处找到工作示例:https://github.com/cipriancaba/rxcpp-examples/blob/master/src/SimpleOperators.cpp https://github.com/cipriancaba/rxcpp-examples/blob/master/src/SimpleOperators.cpp
function<observable<json>(observable<string>)> SimpleOperators::convertFromStringToJson() {
return [](observable<string> $str) {
return $str |
Rx::map([](const string s) {
return json::parse(s);
});
};
}
如果您使用 try/catch 来转换异常,rxcpp 将起作用。
但是,预期的模式是使用 on_error_resume_next() 来转换异常。
这是代码:
function<observable<json>(observable<string>)> SimpleOperators::convertFromStringToJson() {
return [](observable<string> $str) {
return $str |
Rx::map([](const string& s) {
return json::parse(s);
}) |
Rx::on_error_resume_next([](std::exception_ptr){
return Rx::error<json>(runtime_error("custom exception"));
});
};
}
我用这段代码在 github 上打开了一个拉取请求。
https://github.com/cipriancaba/rxcpp-examples/pull/1 https://github.com/cipriancaba/rxcpp-examples/pull/1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)