错误处理
概述
错误类型
框架内置错误
use silent::prelude::*;
// 使用内置错误类型
let error = SilentError::BadRequest("Invalid input".to_string());
let error = SilentError::NotFound("Resource not found".to_string());
let error = SilentError::InternalServerError("Database error".to_string());自定义错误
use std::error::Error;
use std::fmt;
#[derive(Debug)]
struct CustomError {
message: String,
}
impl Error for CustomError {}
impl fmt::Display for CustomError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.message)
}
}错误处理中间件
全局错误处理
自定义错误处理
错误日志记录
使用tracing记录错误
错误响应格式化
JSON错误响应
最佳实践
示例:完整的错误处理流程
Last updated