Rust

Box<dyn Error> — Quick Boxed Errors

admin by @admin ADMIN
3d ago
May 31, 2026
Public
0 0 up · 0 down Sign in to vote
If you don't want the thiserror/anyhow dependency, `Box<dyn std::error::Error>` works as a catch-all. The `?` operator promotes any concrete error via `From`.
Rust
Raw
use std::error::Error;
use std::fs;

fn read_first_line(path: &str) -> Result<String, Box<dyn Error>> {
    let contents = fs::read_to_string(path)?;       // io::Error → Box<dyn Error>
    let line = contents.lines().next()
        .ok_or("file was empty")?;                  // &str → Box<dyn Error>
    Ok(line.to_string())
}

fn main() -> Result<(), Box<dyn Error>> {
    let first = read_first_line("Cargo.toml")?;
    println!("first line: {first}");
    Ok(())
}
Tags

Save your own code snippets

Create a free account and build your private vault. Share publicly whenever you want.