pub enum AppError {
Show 20 variants
BadRequest(String),
Unauthorized(String),
Forbidden(String),
NotFound(String),
Conflict(String),
UnprocessableEntity(String),
TooManyRequests(String),
InternalServerError(String),
BadGateway(String),
ServiceUnavailable(String),
GatewayTimeout(String),
JsonParseError(Error),
UrlEncodedParseError(Error),
MultipartParseError(String),
ValidationError(Vec<ValidationErrorDetail>),
DatabaseError(String),
IoError(Error),
Timeout(String),
ExternalServiceError {
service: String,
message: String,
},
Custom {
status: StatusCode,
error_code: String,
message: String,
details: Option<Value>,
},
}Expand description
框架统一错误类型
所有错误都会被转换为 HTTP 响应,提供一致的错误处理体验
Variants§
BadRequest(String)
400 Bad Request - 请求格式错误或参数不合法
401 Unauthorized - 未认证
Forbidden(String)
403 Forbidden - 已认证但无权限
NotFound(String)
404 Not Found - 资源不存在
Conflict(String)
409 Conflict - 资源冲突(如重复创建)
UnprocessableEntity(String)
422 Unprocessable Entity - 验证失败
TooManyRequests(String)
429 Too Many Requests - 请求过于频繁
InternalServerError(String)
500 Internal Server Error - 内部错误
BadGateway(String)
502 Bad Gateway - 网关错误
503 Service Unavailable - 服务不可用
GatewayTimeout(String)
504 Gateway Timeout - 网关超时
JsonParseError(Error)
JSON 解析错误
UrlEncodedParseError(Error)
URL 编码解析错误
MultipartParseError(String)
Multipart 解析错误
ValidationError(Vec<ValidationErrorDetail>)
验证错误(包含详细字段错误)
DatabaseError(String)
数据库错误
IoError(Error)
IO 错误
Timeout(String)
超时错误
ExternalServiceError
第三方服务错误
Custom
自定义错误,允许完全控制状态码和响应内容
Implementations§
Source§impl AppError
impl AppError
Sourcepub fn custom(
status: StatusCode,
error_code: impl Into<String>,
message: impl Into<String>,
) -> Self
pub fn custom( status: StatusCode, error_code: impl Into<String>, message: impl Into<String>, ) -> Self
创建自定义错误
Sourcepub fn custom_with_details(
status: StatusCode,
error_code: impl Into<String>,
message: impl Into<String>,
details: Value,
) -> Self
pub fn custom_with_details( status: StatusCode, error_code: impl Into<String>, message: impl Into<String>, details: Value, ) -> Self
创建带详细信息的自定义错误
Sourcepub fn status_code(&self) -> StatusCode
pub fn status_code(&self) -> StatusCode
获取 HTTP 状态码
Sourcepub fn error_code(&self) -> String
pub fn error_code(&self) -> String
获取错误代码
Trait Implementations§
Source§impl Error for AppError
impl Error for AppError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
👎Deprecated since 1.42.0: use the Display impl or to_string()
Source§impl IntoResponse for AppError
impl IntoResponse for AppError
fn into_response(self) -> Response<BoxBody<Bytes, Infallible>>
Auto Trait Implementations§
impl Freeze for AppError
impl !RefUnwindSafe for AppError
impl Send for AppError
impl Sync for AppError
impl Unpin for AppError
impl !UnwindSafe for AppError
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more