Exception classes

## Classes

struct | pqxx::failure
| Run-time failure encountered by libpqxx, similar to std::runtime_error. More...
struct | pqxx::broken_connection
| Exception class for lost or failed backend connection. More...
struct | pqxx::protocol_violation
| Exception class for micommunication with the server. More...
struct | pqxx::variable_set_to_null
| The caller attempted to set a variable to null, which is not allowed. More...
class | pqxx::sql_error
| Exception class for failed queries. More...
struct | pqxx::in_doubt_error
| "Help, I don't know whether transaction was committed successfully!" More...
struct | pqxx::transaction_rollback
| The backend saw itself forced to roll back the ongoing transaction. More...
struct | pqxx::serialization_failure
| Transaction failed to serialize. Please retry it. More...
struct | pqxx::statement_completion_unknown
| We can't tell whether our last statement succeeded. More...
struct | pqxx::deadlock_detected
| The ongoing transaction has deadlocked. Retrying it may help. More...
struct | pqxx::internal_error
| Internal error in libpqxx library. More...
struct | pqxx::usage_error
| Error in usage of libpqxx library, similar to std::logic_error. More...
struct | pqxx::argument_error
| Invalid argument passed to libpqxx, similar to std::invalid_argument. More...
struct | pqxx::conversion_error
| Value conversion failed, e.g. when converting "Hello" to int. More...
struct | pqxx::unexpected_null
| Could not convert null value: target type does not support null. More...
struct | pqxx::conversion_overrun
| Could not convert value to string: not enough buffer space. More...
struct | pqxx::range_error
| Something is out of range, similar to std::out_of_range. More...
struct | pqxx::unexpected_rows
| Query returned an unexpected number of rows. More...
struct | pqxx::feature_not_supported
| Database feature not supported in current setup. More...
struct | pqxx::data_exception
| Error in data provided to SQL statement. More...
struct | pqxx::integrity_constraint_violation
struct | pqxx::restrict_violation
struct | pqxx::not_null_violation
struct | pqxx::foreign_key_violation
struct | pqxx::unique_violation
struct | pqxx::check_violation
struct | pqxx::invalid_cursor_state
struct | pqxx::invalid_sql_statement_name
struct | pqxx::invalid_cursor_name
struct | pqxx::syntax_error
struct | pqxx::undefined_column
struct | pqxx::undefined_function
struct | pqxx::undefined_table
struct | pqxx::insufficient_privilege
struct | pqxx::insufficient_resources
| Resource shortage on the server. More...
struct | pqxx::disk_full
struct | pqxx::out_of_memory
struct | pqxx::too_many_connections
struct | pqxx::plpgsql_error
| PL/pgSQL error. More...
struct | pqxx::plpgsql_raise
| Exception raised in PL/pgSQL procedure. More...
struct | pqxx::plpgsql_no_data_found
struct | pqxx::plpgsql_too_many_rows

## Detailed Description

These exception classes follow, roughly, the two-level hierarchy defined by the PostgreSQL SQLSTATE error codes (see Appendix A of the PostgreSQL documentation corresponding to your server version). This is not a complete mapping though. There are other differences as well, e.g. the error code for `statement_completion_unknown` has a separate status in libpqxx as in_doubt_error, and `too_many_connections` is classified as a `broken_connection` rather than a subtype of `insufficient_resources`.

See also
  http://www.postgresql.org/docs/9.4/interactive/errcodes-appendix.html