Class PostgresException
The exception that is thrown when the PostgreSQL backend reports errors (e.g. query SQL issues, constraint violations).
Inherited Members
Namespace: Npgsql
Assembly: Npgsql.dll
Syntax
public sealed class PostgresException : NpgsqlException
Remarks
This exception only corresponds to a PostgreSQL-delivered error.
Other errors (e.g. network issues) will be raised via NpgsqlException,
and purely Npgsql-related issues which aren't related to the server will be raised
via the standard CLR exceptions (e.g.
See https://www.postgresql.org/docs/current/static/errcodes-appendix.html, https://www.postgresql.org/docs/current/static/protocol-error-fields.html
Constructors
| Improve this Doc View SourcePostgresException(string, string, string, string, string?, string?, int, int, string?, string?, string?, string?, string?, string?, string?, string?, string?, string?)
Creates a new instance.
Declaration
public PostgresException(string messageText, string severity, string invariantSeverity, string sqlState, string? detail = null, string? hint = null, int position = 0, int internalPosition = 0, string? internalQuery = null, string? where = null, string? schemaName = null, string? tableName = null, string? columnName = null, string? dataTypeName = null, string? constraintName = null, string? file = null, string? line = null, string? routine = null)
Parameters
Type | Name | Description |
---|---|---|
string | messageText | |
string | severity | |
string | invariantSeverity | |
string | sqlState | |
string? | detail | |
string? | hint | |
int | position | |
int | internalPosition | |
string? | internalQuery | |
string? | where | |
string? | schemaName | |
string? | tableName | |
string? | columnName | |
string? | dataTypeName | |
string? | constraintName | |
string? | file | |
string? | line | |
string? | routine |
Remarks
This exception only corresponds to a PostgreSQL-delivered error.
Other errors (e.g. network issues) will be raised via NpgsqlException,
and purely Npgsql-related issues which aren't related to the server will be raised
via the standard CLR exceptions (e.g.
See https://www.postgresql.org/docs/current/static/errcodes-appendix.html, https://www.postgresql.org/docs/current/static/protocol-error-fields.html
PostgresException(string, string, string, string)
Creates a new instance.
Declaration
public PostgresException(string messageText, string severity, string invariantSeverity, string sqlState)
Parameters
Type | Name | Description |
---|---|---|
string | messageText | |
string | severity | |
string | invariantSeverity | |
string | sqlState |
Remarks
This exception only corresponds to a PostgreSQL-delivered error.
Other errors (e.g. network issues) will be raised via NpgsqlException,
and purely Npgsql-related issues which aren't related to the server will be raised
via the standard CLR exceptions (e.g.
See https://www.postgresql.org/docs/current/static/errcodes-appendix.html, https://www.postgresql.org/docs/current/static/protocol-error-fields.html
Properties
| Improve this Doc View SourceCode
The SQLSTATE code for the error.
Declaration
public string Code { get; }
Property Value
Type | Description |
---|---|
string |
Remarks
Always present. Constants are defined in PostgresErrorCodes. See https://www.postgresql.org/docs/current/static/errcodes-appendix.html
ColumnName
If the error was associated with a specific table column, the name of the column. (Refer to the schema and table name fields to identify the table.)
Declaration
public string? ColumnName { get; }
Property Value
Type | Description |
---|---|
string? |
Remarks
PostgreSQL 9.3 and up.
ConstraintName
If the error was associated with a specific constraint, the name of the constraint. Refer to fields listed above for the associated table or domain. (For this purpose, indexes are treated as constraints, even if they weren't created with constraint syntax.)
Declaration
public string? ConstraintName { get; }
Property Value
Type | Description |
---|---|
string? |
Remarks
PostgreSQL 9.3 and up.
DataTypeName
If the error was associated with a specific data type, the name of the data type. (Refer to the schema name field for the name of the data type's schema.)
Declaration
public string? DataTypeName { get; }
Property Value
Type | Description |
---|---|
string? |
Remarks
PostgreSQL 9.3 and up.
Detail
An optional secondary error message carrying more detail about the problem. May run to multiple lines.
Declaration
public string? Detail { get; }
Property Value
Type | Description |
---|---|
string? |
Remarks
This exception only corresponds to a PostgreSQL-delivered error.
Other errors (e.g. network issues) will be raised via NpgsqlException,
and purely Npgsql-related issues which aren't related to the server will be raised
via the standard CLR exceptions (e.g.
See https://www.postgresql.org/docs/current/static/errcodes-appendix.html, https://www.postgresql.org/docs/current/static/protocol-error-fields.html
File
The file name of the source-code location where the error was reported.
Declaration
public string? File { get; }
Property Value
Type | Description |
---|---|
string? |
Remarks
PostgreSQL 9.3 and up.
Hint
An optional suggestion what to do about the problem. This is intended to differ from Detail in that it offers advice (potentially inappropriate) rather than hard facts. May run to multiple lines.
Declaration
public string? Hint { get; }
Property Value
Type | Description |
---|---|
string? |
Remarks
This exception only corresponds to a PostgreSQL-delivered error.
Other errors (e.g. network issues) will be raised via NpgsqlException,
and purely Npgsql-related issues which aren't related to the server will be raised
via the standard CLR exceptions (e.g.
See https://www.postgresql.org/docs/current/static/errcodes-appendix.html, https://www.postgresql.org/docs/current/static/protocol-error-fields.html
InternalPosition
This is defined the same as the Position field, but it is used when the cursor position refers to an internally generated command rather than the one submitted by the client. The InternalQuery field will always appear when this field appears. 0 means not provided.
Declaration
public int InternalPosition { get; }
Property Value
Type | Description |
---|---|
int |
Remarks
This exception only corresponds to a PostgreSQL-delivered error.
Other errors (e.g. network issues) will be raised via NpgsqlException,
and purely Npgsql-related issues which aren't related to the server will be raised
via the standard CLR exceptions (e.g.
See https://www.postgresql.org/docs/current/static/errcodes-appendix.html, https://www.postgresql.org/docs/current/static/protocol-error-fields.html
InternalQuery
The text of a failed internally-generated command. This could be, for example, a SQL query issued by a PL/pgSQL function.
Declaration
public string? InternalQuery { get; }
Property Value
Type | Description |
---|---|
string? |
Remarks
This exception only corresponds to a PostgreSQL-delivered error.
Other errors (e.g. network issues) will be raised via NpgsqlException,
and purely Npgsql-related issues which aren't related to the server will be raised
via the standard CLR exceptions (e.g.
See https://www.postgresql.org/docs/current/static/errcodes-appendix.html, https://www.postgresql.org/docs/current/static/protocol-error-fields.html
InvariantSeverity
Severity of the error or notice, not localized. Always present since PostgreSQL 9.6.
Declaration
public string InvariantSeverity { get; }
Property Value
Type | Description |
---|---|
string |
Remarks
This exception only corresponds to a PostgreSQL-delivered error.
Other errors (e.g. network issues) will be raised via NpgsqlException,
and purely Npgsql-related issues which aren't related to the server will be raised
via the standard CLR exceptions (e.g.
See https://www.postgresql.org/docs/current/static/errcodes-appendix.html, https://www.postgresql.org/docs/current/static/protocol-error-fields.html
IsTransient
Specifies whether the exception is considered transient, that is, whether retrying the operation could succeed (e.g. a network error). Check SqlState.
Declaration
public override bool IsTransient { get; }
Property Value
Type | Description |
---|---|
bool |
Overrides
Remarks
This exception only corresponds to a PostgreSQL-delivered error.
Other errors (e.g. network issues) will be raised via NpgsqlException,
and purely Npgsql-related issues which aren't related to the server will be raised
via the standard CLR exceptions (e.g.
See https://www.postgresql.org/docs/current/static/errcodes-appendix.html, https://www.postgresql.org/docs/current/static/protocol-error-fields.html
Line
The line number of the source-code location where the error was reported.
Declaration
public string? Line { get; }
Property Value
Type | Description |
---|---|
string? |
Remarks
This exception only corresponds to a PostgreSQL-delivered error.
Other errors (e.g. network issues) will be raised via NpgsqlException,
and purely Npgsql-related issues which aren't related to the server will be raised
via the standard CLR exceptions (e.g.
See https://www.postgresql.org/docs/current/static/errcodes-appendix.html, https://www.postgresql.org/docs/current/static/protocol-error-fields.html
MessageText
The primary human-readable error message. This should be accurate but terse.
Declaration
public string MessageText { get; }
Property Value
Type | Description |
---|---|
string |
Remarks
Always present.
Position
The field value is a decimal ASCII integer, indicating an error cursor position as an index into the original query string. The first character has index 1, and positions are measured in characters not bytes. 0 means not provided.
Declaration
public int Position { get; }
Property Value
Type | Description |
---|---|
int |
Remarks
This exception only corresponds to a PostgreSQL-delivered error.
Other errors (e.g. network issues) will be raised via NpgsqlException,
and purely Npgsql-related issues which aren't related to the server will be raised
via the standard CLR exceptions (e.g.
See https://www.postgresql.org/docs/current/static/errcodes-appendix.html, https://www.postgresql.org/docs/current/static/protocol-error-fields.html
Routine
The name of the source-code routine reporting the error.
Declaration
public string? Routine { get; }
Property Value
Type | Description |
---|---|
string? |
Remarks
This exception only corresponds to a PostgreSQL-delivered error.
Other errors (e.g. network issues) will be raised via NpgsqlException,
and purely Npgsql-related issues which aren't related to the server will be raised
via the standard CLR exceptions (e.g.
See https://www.postgresql.org/docs/current/static/errcodes-appendix.html, https://www.postgresql.org/docs/current/static/protocol-error-fields.html
SchemaName
If the error was associated with a specific database object, the name of the schema containing that object, if any.
Declaration
public string? SchemaName { get; }
Property Value
Type | Description |
---|---|
string? |
Remarks
PostgreSQL 9.3 and up.
Severity
Severity of the error or notice. Always present.
Declaration
public string Severity { get; }
Property Value
Type | Description |
---|---|
string |
Remarks
This exception only corresponds to a PostgreSQL-delivered error.
Other errors (e.g. network issues) will be raised via NpgsqlException,
and purely Npgsql-related issues which aren't related to the server will be raised
via the standard CLR exceptions (e.g.
See https://www.postgresql.org/docs/current/static/errcodes-appendix.html, https://www.postgresql.org/docs/current/static/protocol-error-fields.html
SqlState
The SQLSTATE code for the error.
Declaration
public string SqlState { get; }
Property Value
Type | Description |
---|---|
string |
Remarks
Always present. Constants are defined in PostgresErrorCodes. See https://www.postgresql.org/docs/current/static/errcodes-appendix.html
TableName
Table name: if the error was associated with a specific table, the name of the table. (Refer to the schema name field for the name of the table's schema.)
Declaration
public string? TableName { get; }
Property Value
Type | Description |
---|---|
string? |
Remarks
PostgreSQL 9.3 and up.
Where
An indication of the context in which the error occurred. Presently this includes a call stack traceback of active PL functions. The trace is one entry per line, most recent first.
Declaration
public string? Where { get; }
Property Value
Type | Description |
---|---|
string? |
Remarks
This exception only corresponds to a PostgreSQL-delivered error.
Other errors (e.g. network issues) will be raised via NpgsqlException,
and purely Npgsql-related issues which aren't related to the server will be raised
via the standard CLR exceptions (e.g.
See https://www.postgresql.org/docs/current/static/errcodes-appendix.html, https://www.postgresql.org/docs/current/static/protocol-error-fields.html
Methods
| Improve this Doc View SourceGetObjectData(SerializationInfo, StreamingContext)
Populates a
Declaration
public override void GetObjectData(SerializationInfo info, StreamingContext context)
Parameters
Type | Name | Description |
---|---|---|
SerializationInfo | info | The |
StreamingContext | context | The destination (see |
Remarks
This exception only corresponds to a PostgreSQL-delivered error.
Other errors (e.g. network issues) will be raised via NpgsqlException,
and purely Npgsql-related issues which aren't related to the server will be raised
via the standard CLR exceptions (e.g.
See https://www.postgresql.org/docs/current/static/errcodes-appendix.html, https://www.postgresql.org/docs/current/static/protocol-error-fields.html
ToString()
Declaration
public override string ToString()
Returns
Type | Description |
---|---|
string |
Remarks
This exception only corresponds to a PostgreSQL-delivered error.
Other errors (e.g. network issues) will be raised via NpgsqlException,
and purely Npgsql-related issues which aren't related to the server will be raised
via the standard CLR exceptions (e.g.
See https://www.postgresql.org/docs/current/static/errcodes-appendix.html, https://www.postgresql.org/docs/current/static/protocol-error-fields.html