|
|
|
@ -202,7 +202,7 @@ thread 'main' panicked at 'not enough arguments', src/main.rs:29
|
|
|
|
|
note: Run with `RUST_BACKTRACE=1` for a backtrace.
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
这个输出就好多了,现在有了一个合理的错误信息。然而,我们还有一堆额外的信息不希望提供给用户。所以在这里使用示例 9-8 中的技术可能不是最好的;无论如何 `panic!` 调用更适合程序上的问题而不是使用上的问题,正如第九章所讲到的。相反我们可以使用那一章学习的另一个技术:返回一个可以表明成功或错误的 `Result`。
|
|
|
|
|
这个输出就好多了,现在有了一个合理的错误信息。然而,我们还有一堆额外的信息不希望提供给用户。所以在这里使用示例 9-8 中的技术可能不是最好的;正如第九章所讲到的一样,`panic!` 的调用更趋向于程序上的问题而不是使用上的问题。相反我们可以使用那一章学习的另一个技术:返回一个可以表明成功或错误的 `Result`。
|
|
|
|
|
|
|
|
|
|
#### 从 `new` 中返回 `Result` 而不是调用 `panic!`
|
|
|
|
|
|
|
|
|
@ -442,4 +442,4 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
哇哦!这可有很多的工作,不过我们为将来成功打下了基础。现在处理错误将更容易,同时代码也更加模块化。从现在开始几乎所有的工作都将在 *src/lib.rs* 中进行。
|
|
|
|
|
|
|
|
|
|
让我们利用这些新创建的模块的优势来进行一些在旧代码中难以展开的工作,他们在新代码中却很简单:编写测试!
|
|
|
|
|
让我们利用这些新创建的模块的优势来进行一些在旧代码中难以展开的工作,他们在新代码中却很简单:编写测试!
|
|
|
|
|