Rust Error Handling

SkillDev tools

Rust-specific error handling patterns, building on the base error handling skill. Demonstrates the 'extends' composition feature.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Rust Error Handling skill

What this skill tells your AI

The instructions your AI receives, as published by dicklesworthstone/remote_compilation_helper in skills/examples/rust-error-handling/SKILL.md and read by ahel’s review.

Rust-specific error handling patterns that extend the base error handling skill.

Rules

  • Use thiserror for defining library error types
  • Use anyhow for application-level error handling
  • Implement std::error::Error trait for custom error types
  • Use the ? operator for ergonomic error propagation
  • Prefer Result<T, E> over panicking for recoverable errors
  • Use unwrap() only in tests or when failure is impossible

Examples

// Define library errors with thiserror
use thiserror::Error;

#[derive(Error, Debug)]
pub enum ConfigError {
    #[error("failed to read config file: {0}")]
    Io(#[from] std::io::Error),

    #[error("invalid config format: {0}")]
    Parse(#[from] toml::de::Error),

    #[error("missing required field: {field}")]
    MissingField { field: String },
}
// Application-level error handling with anyhow
use anyhow::{Context, Result};

fn load_config(path: &str) -> Result<Config> {
    let content = std::fs::read_to_string(path)
        .with_context(|| format!("failed to read config from {}", path))?;

    let config: Config = toml::from_str(&content)
        .context("failed to parse config TOML")?;

    Ok(config)
}

Checklist

  • Custom error types use thiserror derive
  • Error context is added with anyhow::Context
  • No unwrap() calls in production code paths
  • Result is used instead of panic! for recoverable errors

Signals

GitHub stars
60
Forks
4
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
rust-error-handling
Source
github.com/dicklesworthstone/remote_compilation_helper