rust - 以? 结尾的调用,跟rails中的try非常类似,为了更方便的处理异常
访问量: 1240
我们看到,一些方法调用,会 用?结尾。 例如: db.execute(xx)?;
这样的作用是为了能够在维持代码可读性的同时,处理异常。
如果上面的代码正确,则正常返回。
如果不正确,则返回 Error(e)
例如,下面的代码:
let f = File::open("some_file.txt"); let mut f = match f { Ok(file) -> file, Error(e) -> return Error(e), }与下面是作用相同的:
File::open("some_file.txt")?;
另外,也可以这样做:
method_1()?.method2().method3()