Error Handling in Rust: Multiple Examples and Best Practices

A guide to handling errors in Rust, with examples and best practices for writing reliable and maintainable code.

Sterling Cobb
4 min readJan 3, 2023

Error handling is an important aspect of writing reliable software, and Rust provides several options for dealing with errors in your code. In this article, we’ll explore some of the most common approaches to error handling in Rust, with examples to help you understand how each one works. We’ll also discuss some best practices for handling errors in Rust to help you write more robust and maintainable code.

Option

The Option type is one of the most basic ways to represent the possibility of an error in Rust. It is an enumeration with two variants: Some, which indicates that a value is present, and None, which indicates that no value is present. Here's an example of how you might use Option to handle an error:

fn parse_number(input: &str) -> Option<i32> {
match input.parse::<i32>() {
Ok(num) => Some(num),
Err(_) => None,
}
}

let result = parse_number("42");

match result {
Some(num) => println!("The number is {}", num),
None => println!("Invalid input"),
}

In this example, the parse_number function takes a string as input and attempts to parse it as an integer. If the parse is successful, it returns a Some variant with the parsed number. If the parse fails, it returns a None variant.

--

--