Error Handling Patterns
Patterns สำหรับ error handling ใน Rust
Result Basics
Section titled “Result Basics”fn divide(a: i32, b: i32) -> Result<i32, String> { if b == 0 { Err("Division by zero".to_string()) } else { Ok(a / b) }}
fn main() { // Explicit matching match divide(10, 2) { Ok(result) => println!("Result: {}", result), Err(e) => println!("Error: {}", e), }
// unwrap (panics on Err) let result = divide(10, 2).unwrap(); println!("Unwrap: {}", result);
// expect (panics with message) let result = divide(10, 2).expect("Division failed"); println!("Expect: {}", result);
// unwrap_or (default value) let result = divide(10, 0).unwrap_or(0); println!("With default: {}", result);
// unwrap_or_else (lazy default) let result = divide(10, 0).unwrap_or_else(|e| { eprintln!("Error: {}", e); -1 }); println!("Lazy default: {}", result);
// is_ok / is_err let result = divide(10, 0); println!("is_err: {}", result.is_err());}เข้าสู่ระบบเพื่อดูเนื้อหาเต็ม
ยืนยันตัวตนด้วยบัญชี Google เพื่อปลดล็อกบทความทั้งหมด
Login with Google