Trait DatabaseError

Source
pub trait DatabaseError:
    'static
    + Send
    + Sync
    + StdError {
    // Required method
    fn message(&self) -> &str;

    // Provided methods
    fn code(&self) -> Option<Cow<'_, str>> { ... }
    fn offset(&self) -> Option<usize> { ... }
    fn constraint(&self) -> Option<&str> { ... }
}
Expand description

An error that was returned from the database.

Required Methods§

Source

fn message(&self) -> &str

The primary, human-readable error message.

Provided Methods§

Source

fn code(&self) -> Option<Cow<'_, str>>

The (SQLSTATE) code for the error.

Source

fn offset(&self) -> Option<usize>

The byte offset in the query string where the error occurred, if applicable

Source

fn constraint(&self) -> Option<&str>

Returns the name of the constraint that triggered the error, if applicable. If the error was caused by a conflict of a unique index, this will be the index name.

§Note

Currently only populated by the Postgres driver.

Implementations§

Source§

impl dyn DatabaseError

Source

pub fn downcast_ref<E: DatabaseError>(&self) -> &E

Downcast a reference to this generic database error to a specific database error type.

§Panics

Panics if the database error type is not E. This is a deliberate contrast from Error::downcast_ref which returns Option<&E>. In normal usage, you should know the specific error type. In other cases, use try_downcast_ref.

Source

pub fn downcast<E: DatabaseError>(self: Box<Self>) -> Box<E>

Downcast this generic database error to a specific database error type.

§Panics

Panics if the database error type is not E. This is a deliberate contrast from Error::downcast which returns Option<E>. In normal usage, you should know the specific error type. In other cases, use try_downcast.

Source

pub fn try_downcast_ref<E: DatabaseError>(&self) -> Option<&E>

Downcast a reference to this generic database error to a specific database error type.

Source

pub fn try_downcast<E: DatabaseError>( self: Box<Self>, ) -> StdResult<Box<E>, Box<Self>>

Downcast this generic database error to a specific database error type.

Trait Implementations§

Source§

impl Error for Box<dyn DatabaseError>

1.30.0 · Source§

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

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · Source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
Source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type-based access to context intended for error reports. Read more

Implementors§

Source§

impl DatabaseError for MssqlDatabaseError

Available on crate feature mssql only.
Source§

impl DatabaseError for MySqlDatabaseError

Available on crate feature mysql only.
Source§

impl DatabaseError for PgDatabaseError

Available on crate feature postgres only.
Source§

impl DatabaseError for SqliteError

Available on crate feature sqlite only.