Selecto.Error (Selecto v0.3.8)
Standardized error structure for all Selecto operations.
Provides consistent error handling across the Selecto ecosystem with structured error information including context, query details, and actionable error types.
error-types
Error Types
:connection_error- Database connection failures:query_error- SQL query execution failures:validation_error- Input validation failures:configuration_error- Invalid domain or Selecto configuration:no_results- Query returned no results when one expected:multiple_results- Query returned multiple results when one expected:timeout_error- Query execution timeout
examples
Examples
# Connection error
{:error, %Selecto.Error{
type: :connection_error,
message: "Failed to connect to database",
details: %{host: "localhost", port: 5432}
}}
# Query error with context
{:error, %Selecto.Error{
type: :query_error,
message: "Column 'invalid_col' does not exist",
query: "SELECT invalid_col FROM users",
params: [],
details: %{column: "invalid_col", table: "users"}
}}
Link to this section Summary
Functions
Creates a configuration error.
Creates a connection error.
Creates a field resolution error with context.
Converts various error types to standardized Selecto.Error.
Creates a multiple results error for execute_one/2.
Creates a no results error for execute_one/2.
Creates a query execution error with SQL context.
Creates a query generation error.
Creates a timeout error.
Creates a user-friendly error message for display.
Converts a Selecto.Error to an exception for raising.
Creates a transformation error for output format processing.
Creates a validation error.
Link to this section Types
error_type()
@type error_type() ::
:connection_error
| :query_error
| :validation_error
| :configuration_error
| :no_results
| :multiple_results
| :timeout_error
| :field_resolution_error
| :transformation_error
@type t() :: %Selecto.Error{ details: map() | nil, message: String.t(), params: [term()] | nil, query: String.t() | nil, type: error_type() }
Link to this section Functions
configuration_error(message, details \\ %{})
Creates a configuration error.
connection_error(message, details \\ %{})
Creates a connection error.
field_resolution_error(message, field_ref, context \\ %{})
Creates a field resolution error with context.
from_reason(exception)
Converts various error types to standardized Selecto.Error.
multiple_results_error(message \\ "Query returned multiple results when one expected")
Creates a multiple results error for execute_one/2.
no_results_error(message \\ "Query returned no results")
Creates a no results error for execute_one/2.
query_error(message, query \\ nil, params \\ [], details \\ %{})
Creates a query execution error with SQL context.
query_generation_error(message, details \\ %{})
Creates a query generation error.
timeout_error(message, details \\ %{})
Creates a timeout error.
to_display_message(error)
Creates a user-friendly error message for display.
to_exception(error)
@spec to_exception(t()) :: Exception.t()
Converts a Selecto.Error to an exception for raising.
transformation_error(message, details \\ %{})
Creates a transformation error for output format processing.
validation_error(message, details \\ %{})
Creates a validation error.