相关疑难解决方法(0)

Rust正确的错误处理(从一种错误类型自动转换为带问号的另一种错误类型)

我想学习如何正确处理Rust中的错误.我读过这本书这个例子 ; 现在我想知道我应该如何处理这个函数中的错误:

fn get_synch_point(&self) -> Result<pv::synch::MeasPeriods, reqwest::Error> {
    let url = self.root.join("/term/pv/synch"); // self.root is url::Url
    let url = match url {
        Ok(url) => url,
        // ** this err here is url::ParseError and can be converted to Error::Kind https://docs.rs/reqwest/0.8.3/src/reqwest/error.rs.html#54-57 **//
        Err(err) => {
            return Err(Error {
                kind: ::std::convert::From::from(err),
                url: url.ok(),
            })
        }
    };

    Ok(reqwest::get(url)?.json()?) //this return reqwest::Error or convert to pv::sych::MeasPeriods automaticly
}      
Run Code Online (Sandbox Code Playgroud)

这段代码不合适; 它会导致编译错误:

error[E0451]: field `kind` of struct `reqwest::Error` is private
  --> src/main.rs:34:42
   | …
Run Code Online (Sandbox Code Playgroud)

rust

15
推荐指数
3
解决办法
4814
查看次数

标签 统计

rust ×1