#[non_exhaustive]pub enum CoreError {
Network(Box<NetworkError>),
Authentication {
message: String,
code: ErrorCode,
ctx: Box<ErrorContext>,
},
Api(Box<ApiError>),
Validation {
field: Cow<'static, str>,
message: String,
code: ErrorCode,
ctx: Box<ErrorContext>,
},
Configuration {
message: String,
code: ErrorCode,
ctx: Box<ErrorContext>,
},
Serialization {
message: String,
source: Option<Box<dyn Error + Send + Sync>>,
code: ErrorCode,
ctx: Box<ErrorContext>,
},
Business {
code: ErrorCode,
message: String,
ctx: Box<ErrorContext>,
},
Timeout {
duration: Duration,
operation: Option<String>,
ctx: Box<ErrorContext>,
},
RateLimit {
limit: u32,
window: Duration,
reset_after: Option<Duration>,
code: ErrorCode,
ctx: Box<ErrorContext>,
},
ServiceUnavailable {
service: Cow<'static, str>,
retry_after: Option<Duration>,
code: ErrorCode,
ctx: Box<ErrorContext>,
},
Internal {
code: ErrorCode,
message: String,
source: Option<Box<dyn Error + Send + Sync>>,
ctx: Box<ErrorContext>,
},
}Expand description
轻量版核心错误
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
Network(Box<NetworkError>)
Authentication
Api(Box<ApiError>)
Validation
Configuration
Serialization
Fields
§
ctx: Box<ErrorContext>Business
Timeout
RateLimit
Fields
§
ctx: Box<ErrorContext>Internal
Implementations§
Source§impl CoreError
impl CoreError
Sourcepub fn builder(kind: BuilderKind) -> ErrorBuilder
pub fn builder(kind: BuilderKind) -> ErrorBuilder
统一构建器入口
pub fn network_builder() -> ErrorBuilder
pub fn api_builder() -> ErrorBuilder
pub fn validation_builder() -> ErrorBuilder
pub fn authentication_builder() -> ErrorBuilder
pub fn business_builder() -> ErrorBuilder
Sourcepub fn network_msg(message: impl Into<String>) -> CoreError
pub fn network_msg(message: impl Into<String>) -> CoreError
简单网络错误(无 source)
Sourcepub fn authentication(message: impl Into<String>) -> CoreError
pub fn authentication(message: impl Into<String>) -> CoreError
简单认证错误
Sourcepub fn api_error(
status: i32,
endpoint: impl Into<String>,
message: impl Into<String>,
request_id: Option<impl Into<String>>,
) -> CoreError
pub fn api_error( status: i32, endpoint: impl Into<String>, message: impl Into<String>, request_id: Option<impl Into<String>>, ) -> CoreError
简单 API 错误(便于兼容旧 CoreError::api_error)
Sourcepub fn validation_msg(message: impl Into<String>) -> CoreError
pub fn validation_msg(message: impl Into<String>) -> CoreError
仅带 message 的验证错误(默认字段 general)
Sourcepub fn is_api_error(&self) -> bool
pub fn is_api_error(&self) -> bool
直接判断 API 错误(便捷别名)
pub fn validation( field: impl Into<String>, message: impl Into<String>, ) -> CoreError
pub fn api_data_error(message: impl Into<String>) -> CoreError
pub fn code(&self) -> ErrorCode
pub fn severity(&self) -> ErrorSeverity
pub fn is_retryable(&self) -> bool
pub fn retry_delay(&self, attempt: u32) -> Option<Duration>
pub fn ctx(&self) -> &ErrorContext
pub fn map_context(self, f: impl FnOnce(&mut ErrorContext)) -> CoreError
pub fn with_context_kv( self, key: impl Into<String>, value: impl Into<String>, ) -> CoreError
pub fn with_operation( self, operation: impl Into<String>, component: impl Into<String>, ) -> CoreError
Sourcepub fn record(&self) -> ErrorRecord
pub fn record(&self) -> ErrorRecord
观测记录(可序列化)——供日志/指标/告警统一使用
pub fn network<E>(source: E, ctx: ErrorContext) -> CoreError
pub fn api( status: u16, endpoint: impl Into<Cow<'static, str>>, message: impl Into<String>, ctx: ErrorContext, ) -> CoreError
Trait Implementations§
Source§impl ClientErrorExt for CoreError
impl ClientErrorExt for CoreError
Source§fn suggestion(&self) -> &'static str
fn suggestion(&self) -> &'static str
获取错误建议
Source§fn recovery_steps(&self) -> Vec<&'static str>
fn recovery_steps(&self) -> Vec<&'static str>
获取错误恢复步骤
Source§impl Error for CoreError
impl Error for CoreError
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 ErrorTrait for CoreError
impl ErrorTrait for CoreError
Source§fn severity(&self) -> ErrorSeverity
fn severity(&self) -> ErrorSeverity
获取错误严重程度
Source§fn is_retryable(&self) -> bool
fn is_retryable(&self) -> bool
判断是否可重试
Source§fn user_message(&self) -> Option<&str>
fn user_message(&self) -> Option<&str>
获取用户友好的错误消息
Source§fn context(&self) -> &ErrorContext
fn context(&self) -> &ErrorContext
获取错误上下文信息
Source§fn error_type(&self) -> ErrorType
fn error_type(&self) -> ErrorType
判断错误类型
Source§fn error_code(&self) -> Option<&str>
fn error_code(&self) -> Option<&str>
获取错误代码(如果有)
Source§fn is_user_error(&self) -> bool
fn is_user_error(&self) -> bool
判断是否为用户错误
Source§fn is_system_error(&self) -> bool
fn is_system_error(&self) -> bool
判断是否为系统错误
Source§fn is_network_error(&self) -> bool
fn is_network_error(&self) -> bool
判断是否为网络错误
Source§fn is_auth_error(&self) -> bool
fn is_auth_error(&self) -> bool
判断是否为认证错误
Source§fn is_validation_error(&self) -> bool
fn is_validation_error(&self) -> bool
判断是否为验证错误
Source§fn is_timeout_error(&self) -> bool
fn is_timeout_error(&self) -> bool
判断是否为超时错误
Source§fn is_rate_limited(&self) -> bool
fn is_rate_limited(&self) -> bool
判断是否为限流错误
Source§fn is_config_error(&self) -> bool
fn is_config_error(&self) -> bool
判断是否为配置错误
Source§fn is_serialization_error(&self) -> bool
fn is_serialization_error(&self) -> bool
判断是否为序列化错误
Source§fn is_business_error(&self) -> bool
fn is_business_error(&self) -> bool
判断是否为业务错误
Source§fn is_api_error(&self) -> bool
fn is_api_error(&self) -> bool
判断是否为API错误
判断是否为服务不可用错误
Source§impl From<RegistryError> for CoreError
impl From<RegistryError> for CoreError
Source§fn from(err: RegistryError) -> CoreError
fn from(err: RegistryError) -> CoreError
Converts to this type from the input type.
Auto Trait Implementations§
impl Freeze for CoreError
impl !RefUnwindSafe for CoreError
impl Send for CoreError
impl Sync for CoreError
impl Unpin for CoreError
impl UnsafeUnpin for CoreError
impl !UnwindSafe for CoreError
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
Source§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.