mirror of
https://github.com/notohh/rustlings.git
synced 2024-11-25 14:57:32 -05:00
Add some error handling exercises
This commit is contained in:
parent
203b9167ea
commit
79f0b17473
1 changed files with 44 additions and 0 deletions
44
errors/errors1.rs
Normal file
44
errors/errors1.rs
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
// This example panics because the second time it calls `pop`, the `vec`
|
||||||
|
// is empty, so `pop` returns `None`, and `unwrap` panics if it's called
|
||||||
|
// on `None`. Handle this in a more graceful way than calling `unwrap`!
|
||||||
|
// Scroll down for hints :)
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
let mut list = vec![3];
|
||||||
|
|
||||||
|
let last = list.pop().unwrap();
|
||||||
|
println!("The last item in the list is {:?}", last);
|
||||||
|
|
||||||
|
let second_to_last = list.pop().unwrap();
|
||||||
|
println!("The second-to-last item in the list is {:?}", second_to_last);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Try using a `match` statement where the arms are `Some(thing)` and `None`.
|
||||||
|
// Or set a default value to print out if you get `None` by using the
|
||||||
|
// function `unwrap_or`.
|
||||||
|
// Or use an `if let` statement on the result of `pop()` to both destructure
|
||||||
|
// a `Some` value and only print out something if we have a value!
|
Loading…
Reference in a new issue