Expand description
Comprehensive error types for query operations with actionable messages.
This module provides detailed error types that include:
- Error codes for programmatic handling
- Actionable suggestions for fixing issues
- Context about what operation failed
- Help text and documentation links
§Error Codes
Error codes follow a pattern: P{category}{number}
- 1xxx: Query errors (not found, invalid filter, etc.)
- 2xxx: Constraint violations (unique, foreign key, etc.)
- 3xxx: Connection errors (timeout, pool, auth)
- 4xxx: Transaction errors (deadlock, serialization)
- 5xxx: Execution errors (timeout, syntax, params)
- 6xxx: Data errors (type, serialization)
- 7xxx: Configuration errors
- 8xxx: Migration errors
- 9xxx: Tenant errors
use prax_query::ErrorCode;
// Error codes have string representations
let code = ErrorCode::RecordNotFound;
let code = ErrorCode::UniqueConstraint;
let code = ErrorCode::ConnectionFailed;§Creating Errors
use prax_query::{QueryError, ErrorCode};
// Not found error
let err = QueryError::not_found("User");
assert_eq!(err.code, ErrorCode::RecordNotFound);
// Generic error with code
let err = QueryError::new(ErrorCode::UniqueConstraint, "Email already exists");
assert_eq!(err.code, ErrorCode::UniqueConstraint);§Error Properties
use prax_query::{QueryError, ErrorCode};
let err = QueryError::not_found("User");
// Access error code (public field)
assert_eq!(err.code, ErrorCode::RecordNotFound);
// Access error message
let message = err.to_string();
assert!(message.contains("User"));Structs§
- Error
Context - Additional context for an error.
- Query
Error - Errors that can occur during query operations.
- Suggestion
- Suggestion for fixing an error.
Enums§
- Error
Code - Error codes for programmatic error handling.
Traits§
- Into
Query Error - Extension trait for converting errors to QueryError.
Type Aliases§
- Query
Result - Result type for query operations.