Module error

Module error 

Source
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§

ErrorContext
Additional context for an error.
QueryError
Errors that can occur during query operations.
Suggestion
Suggestion for fixing an error.

Enums§

ErrorCode
Error codes for programmatic error handling.

Traits§

IntoQueryError
Extension trait for converting errors to QueryError.

Type Aliases§

QueryResult
Result type for query operations.