Merge pull request #933 from crjg-k/patch-7

Update ch12-03-improving-error-handling-and-modularity.md
pull/936/head
KaiserY 5 days ago committed by GitHub
commit 893e8a2d34
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -124,9 +124,9 @@
#### 返回 `Result` 而不是调用 `panic!`
我们可以选择返回一个 `Result` 值,它在成功时会包含一个 `Config` 的实例,而在错误时会描述问题。我们还将把函数名从 `new` 改为 `build`,因为许多程序员希望 `new` 函数永远不会失败。当 `Config::new` 与 `main` 交流时,可以使用 `Result` 类型来表明这里存在问题。接着修改 `main``Err` 成员转换为对用户更友好的错误,而不是 `panic!` 调用产生的关于 `thread 'main'``RUST_BACKTRACE` 的文本。
我们可以选择返回一个 `Result` 值,它在成功时会包含一个 `Config` 的实例,而在错误时会描述问题。我们还将把函数名从 `new` 改为 `build`,因为许多程序员希望 `new` 函数永远不会失败。当 `Config::build` 与 `main` 交流时,可以使用 `Result` 类型来表明这里存在问题。接着修改 `main``Err` 成员转换为对用户更友好的错误,而不是 `panic!` 调用产生的关于 `thread 'main'``RUST_BACKTRACE` 的文本。
示例 12-9 展示了为了返回 `Result``Config::new` 的返回值和函数体中所需的改变。注意这还不能编译,直到下一个示例更新了 `main` 之后。
示例 12-9 展示了为了返回 `Result``Config::build` 的返回值和函数体中所需的改变。注意这还不能编译,直到下一个示例更新了 `main` 之后。
<span class="filename">文件名src/main.rs</span>

Loading…
Cancel
Save