Error — trait for custom errors. anyhow — dynamic error handling.
Error trait:
1use std::fmt;23#[derive(Debug)]4enum MyError {5 NotFound,6 PermissionDenied,7}89impl fmt::Display for MyError {10 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {11 match self {12 MyError::NotFound => write!(f, "Not found"),13 MyError::PermissionDenied => write!(f, "Permission denied"),14 }15 }16}17impl std::error::Error for MyError {}
anyhow:
Key: Use Error for libraries, anyhow for applications.