gpt4 book ai didi

c++ - 如何在自定义 rxcpp 运算符上调用 on_error

转载 作者:搜寻专家 更新时间:2023-10-31 01:33:10 26 4
gpt4 key购买 nike

我创建了一个简单的 rx 运算符,它可以将字符串流转换为 json 流,并且工作正常。但是,我希望能够引发自定义异常,但我不确定如何调用订阅的 on_error 方法

运算符称为 convertStringToJson,可以在此处找到工作示例: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 上打开了一个 pull request。

https://github.com/cipriancaba/rxcpp-examples/pull/1

关于c++ - 如何在自定义 rxcpp 运算符上调用 on_error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41876649/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com