Maverick Rust Errors

Rust error handling with Result, Error trait, anyhow, thiserror Use when this capability is needed.

tomevault-io a6d6b7b 2 files · 1.8 KB Updated

File contents

Rust Errors Skill

Result Type

fn parse_number(s: &str) -> Result<i32, ParseIntError> {
    s.parse()
}

// Use ? operator for propagation
fn process() -> Result<(), Error> {
    let num = parse_number("42")?;
    Ok(())
}

Custom Errors with thiserror

use thiserror::Error;

#[derive(Error, Debug)]
pub enum MyError {
    #[error("IO error: {0}")]
    Io(#[from] std::io::Error),

    #[error("Parse error: {0}")]
    Parse(String),
}

Avoid unwrap/expect in Production

// BAD
let value = some_option.unwrap();

// GOOD
let value = some_option.ok_or(MyError::MissingValue)?;

// OR provide default
let value = some_option.unwrap_or_default();

Review Severity

  • CRITICAL: unwrap/expect without justification
  • MAJOR: Missing error handling
  • MINOR: Could use ? operator

Converted and distributed by TomeVault — claim your Tome and manage your conversions.

tomevault-io/skills-registry/tree/main/get2knowio--maverick--maverick-rust-errors commit a6d6b7b9ae

Frequently asked questions

npx skillmds@latest add tomevault-io/maverick-rust-errors