How to handle invalid argument in Rust

4 Answers

0 votes
fn validate_age(age: i32) -> Result<i32, String> {
    if age < 18 {
        Err(String::from("Age must be 18 or older"))
    } else {
        Ok(age)
    }
}

fn main() {
    match validate_age(15) {
        Ok(age) => println!("Valid age: {}", age),
        Err(err) => println!("Error: {}", err),
    }
}

 
  
/*
run:
  
Error: Age must be 18 or older
  
*/

 



answered May 21, 2025 by avibootz
0 votes
fn get_positive_number(num: i32) -> Option<i32> {
    if num > 0 {
        Some(num)
    } else {
        None
    }
}

fn main() {
    match get_positive_number(-5) {
        Some(num) => println!("Valid number: {}", num),
        None => println!("Invalid number - Must be positive"),
    }
}

 
  
/*
run:
  
Invalid number - Must be positive
  
*/

 



answered May 21, 2025 by avibootz
0 votes
fn divide(a: i32, b: i32) -> i32 {
    if b == 0 {
        panic!("Division by zero is not allowed!")
    }
    a / b
}

fn main() {
    println!("{}", divide(6, 0));
}


 
  
/*
run:
  
thread 'main' panicked at src/main.rs:3:9:
Division by zero is not allowed!
  
*/

 



answered May 21, 2025 by avibootz
0 votes
#[derive(Debug, PartialEq, Eq)]

enum MyError {
    InvalidArgument(String),
}

fn validate_input(num: i32) -> Result<i32, MyError> {
    if num < 0 {
        Err(MyError::InvalidArgument("Number must be positive".to_string()))
    } else {
        Ok(num)
    }
}

fn main() {
    match validate_input(-8) {
        Ok(num) => println!("Valid number: {}", num),
        Err(err) => println!("Error: {:?}", err),
    }
}

 
  
/*
run:
  
Error: InvalidArgument("Number must be positive")
  
*/

 



answered May 21, 2025 by avibootz

Related questions

4 answers 333 views
4 answers 353 views
4 answers 301 views
3 answers 244 views
3 answers 247 views
6 answers 462 views
...