Rust – 不可恢复的错误
不可恢复的错误顾名思义就是程序员无法处理的那些错误。当发生任何不可恢复的错误时,最终结果是程序退出(终止)。完整的过程是第一个恐慌!宏被触发,然后错误消息连同它的位置一起打印,最后,程序终止。它主要是由于程序员在代码中留下的错误而引起的。
示例 1:
- 在这个例子中,我们将调用panic!宏。
- 它将显示我们的错误消息和完整的堆栈跟踪(位置,消息)。
- 在此之后,它展开并清理堆栈,然后退出(终止程序)。
下面的程序是针对 Rust 中不可恢复的错误。
Rust
// Rust program for unrecoverable error
fn main() {
// this will result in unrecoverable error
panic!("gfg called panic macro");
}
Rust
// Rust program for unrecoverable error
fn main() {
let gfg=["cp","algo","ds","FAANG"];
// index 5 does not exist
// than it will trigger panic! macro
println!("{}", gfg[5]);
}
输出 :
thread 'main' panicked at 'gfg called panic macro', src\main.rs:4:5
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
error: process didn't exit successfully: `target\debug\unrecoverableErrors.exe` (exit code: 101)
示例 2:
- 在这个程序中,我们将定义一个由四个字符串组成的gfg数组。
- 现在我们将尝试在数组中打印 5 个元素,因为长度是 4 [0-3] 并且我们正在寻找第 5 个索引而不是它会触发恐慌!宏。
- 在此之后,它将打印错误消息、位置和堆栈跟踪。
下面的程序是针对 Rust 中不可恢复的错误。
锈
// Rust program for unrecoverable error
fn main() {
let gfg=["cp","algo","ds","FAANG"];
// index 5 does not exist
// than it will trigger panic! macro
println!("{}", gfg[5]);
}
输出 :
error: this operation will panic at runtime
--> src\main.rs:5:20
|
5 | println!("{}", gfg[5]);
| ^^^^^^ index out of bounds: the length is 4 but the index is 5
|
= note: `#[deny(unconditional_panic)]` on by default