[−][src]Crate fatal
Utilities for reporting fatal errors and exiting with an error code.
The behavior in this crate is different than the one in panic!
-based exits,
in that the ones here are suited for display to end-users, i.e. no "thread main
panicked at", no backtrace mentions, etc.
Usage
For unwrapping Result
s:
- Use
unwrap_message!
to provide context. - Use
unwrap_format!
to have more control over the message's format. - Use
unwrap
/unwrap_fatal
to report the error when context is provided/obvious.
For aborting:
(Pseudo-)Example:
ⓘ
const DB_CONSTR_VAR: &str = "DB_CONNECTION_STRING"; fn main() { let constr: String = fatal::unwrap_message!(std::env::var(DB_CONSTR_VAR), "failed to read the `{}` environment variable", DB_CONSTR_VAR); // when doesn't exist, will print: "Error: failed to read the `DB_CONNECTION_STRING` environment variable (environment variable not found)" println!("Connecting to database.."); let db: Database = fatal::unwrap(Database::connect(&constr)); println!("Total users: {}", db.query_total_users()); }
Macros
error | Prints an error message to standard-error and exits with an error code. |
fatal | Prints to standard-error and exits with an error-code. Returns |
unwrap_format | Unwraps the result or formats an error message and exits. |
unwrap_message | Unwraps the result or reports the error with the error description and exits. |
Traits
UnwrapExt | An extension trait for |
Functions
unwrap | Unwraps a result or reports its error and exits. |