#[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>)
API 错误
Validation
验证错误
Fields
§
ctx: Box<ErrorContext>错误上下文
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
统一构建器入口
Sourcepub fn network_builder() -> ErrorBuilder
pub fn network_builder() -> ErrorBuilder
网络错误构建器
Sourcepub fn api_builder() -> ErrorBuilder
pub fn api_builder() -> ErrorBuilder
API 错误构建器
Sourcepub fn validation_builder() -> ErrorBuilder
pub fn validation_builder() -> ErrorBuilder
验证错误构建器
Sourcepub fn authentication_builder() -> ErrorBuilder
pub fn authentication_builder() -> ErrorBuilder
认证错误构建器
Sourcepub fn business_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 错误(便捷别名)
Sourcepub fn api_data_error(message: impl Into<String>) -> CoreError
pub fn api_data_error(message: impl Into<String>) -> CoreError
API 数据错误
Sourcepub fn severity(&self) -> ErrorSeverity
pub fn severity(&self) -> ErrorSeverity
获取错误严重程度
Sourcepub fn is_retryable(&self) -> bool
pub fn is_retryable(&self) -> bool
是否可重试
Sourcepub fn retry_delay(&self, attempt: u32) -> Option<Duration>
pub fn retry_delay(&self, attempt: u32) -> Option<Duration>
获取重试延迟
Sourcepub fn ctx(&self) -> &ErrorContext
pub fn ctx(&self) -> &ErrorContext
获取错误上下文
Sourcepub fn map_context(self, f: impl FnOnce(&mut ErrorContext)) -> CoreError
pub fn map_context(self, f: impl FnOnce(&mut ErrorContext)) -> CoreError
修改错误上下文
Sourcepub fn with_context_kv(
self,
key: impl Into<String>,
value: impl Into<String>,
) -> CoreError
pub fn with_context_kv( self, key: impl Into<String>, value: impl Into<String>, ) -> CoreError
添加上下文键值对
Sourcepub fn with_operation(
self,
operation: impl Into<String>,
component: 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
观测记录(可序列化)——供日志/指标/告警统一使用
Sourcepub fn network<E>(source: E, ctx: ErrorContext) -> CoreError
pub fn network<E>(source: E, 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.