【发布时间】:2016-09-13 19:33:01
【问题描述】:
unwrap 在运行时很容易崩溃:
fn main() {
c().unwrap();
}
fn c() -> Option<i64> {
None
}
结果:
Compiling playground v0.0.1 (file:///playground)
Running `target/debug/playground`
thread 'main' panicked at 'called `Option::unwrap()` on a `None` value', ../src/libcore/option.rs:325
note: Run with `RUST_BACKTRACE=1` for a backtrace.
error: Process didn't exit successfully: `target/debug/playground` (exit code: 101)
unwrap 是否仅用于快速测试和概念验证?
如果我真的想在运行时避免panic!,我不能肯定“我的程序不会在这里崩溃,所以我可以使用unwrap”,我认为避免panic!是我们在生产应用程序中想要的.
换句话说,如果我使用unwrap,我可以说我的程序是可靠的吗?还是我必须避免unwrap,即使情况看起来很简单?
我看了this 回答:
最好在您确定没有错误时使用。
但我认为我不能“肯定”。
我不认为这是一个意见问题,而是一个关于 Rust 核心和编程的问题。
【问题讨论】:
-
Crash 是当今国际海事组织严重误用的词;人们甚至将它用于带有异常的语言中的未处理异常。例如,恐慌程序远没有段错误那么糟糕。恐慌是故意说“程序的状态是错误,我现在停止,没有两种方法。
-
@Shepmaster 好的,感谢您的精确!
标签: error-handling rust