A quick multiple-choice check before you move on. Answer every question, then submit to see how you did.
1.In a function that returns Result<String, MyError>, what does the ? operator do when applied to an expression that yields Err(io_err) where io_err is a std::io::Error?
2.Why is Box<dyn std::error::Error> the convenient "accept any error" return type for application code?
3.Given let n: i32 = s.parse().ok()?; inside a function returning Option<i32>, what is the role of .ok()?
4.How does the cost of Rust's ? operator compare to throwing an exception in C#?
5.According to the theory's panic-vs-exception model, when is panic!/unwrap/expect the appropriate choice?