Skip to content

Commit

Permalink
Merge pull request #773 from chuanghou/patch-1
Browse files Browse the repository at this point in the history
Update ch09-03-to-panic-or-not-to-panic.md
  • Loading branch information
KaiserY committed Feb 29, 2024
2 parents 4f25b52 + 5cb60e2 commit 47c1071
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion src/ch09-03-to-panic-or-not-to-panic.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
那么,该如何决定何时应该 `panic!` 以及何时应该返回 `Result` 呢?如果代码 panic,就没有恢复的可能。你可以选择对任何错误场景都调用 `panic!`,不管是否有可能恢复,不过这样就是你代替调用者决定了这是不可恢复的。选择返回 `Result` 值的话,就将选择权交给了调用者,而不是代替他们做出决定。调用者可能会选择以符合他们场景的方式尝试恢复,或者也可能干脆就认为 `Err` 是不可恢复的,所以他们也可能会调用 `panic!` 并将可恢复的错误变成了不可恢复的错误。因此返回 `Result` 是定义可能会失败的函数的一个好的默认选择。

在一些类似示例、原型代码(prototype code)和测试中,panic 比返回 `Result` 更为合适,不过它们并不常见。让我们讨论一下为何在示例、代码原型和测试中,以及那些人们认为不会失败而编译器不这么看的情况下,panic 是合适的。章节最后会总结一些在库代码中如何决定是否要 panic 的通用指导原则。
在一些类似示例、原型代码(prototype code)和测试中,panic 比返回 `Result` 更为合适,下文中会讨论合适的原因,紧接着讨论另外一种特殊情况,即有些场景编译器无法认识这个分支代码是不可能走到的,但是程序员可以判断出来的,这种场景也可以用panic!。另外章节最后会总结一些在库代码中如何决定是否要 panic 的通用指导原则。

### 示例、代码原型和测试都非常适合 panic

Expand Down

0 comments on commit 47c1071

Please sign in to comment.