Show / Hide Table of Contents

Class PostgresException

The exception that is thrown when the PostgreSQL backend reports errors (e.g. query SQL issues, constraint violations).

Inheritance
System.Object
System.Exception
System.SystemException
System.Runtime.InteropServices.ExternalException
System.Data.Common.DbException
NpgsqlException
PostgresException
Implements
System.Runtime.Serialization.ISerializable
System.Runtime.InteropServices._Exception
Inherited Members
System.Runtime.InteropServices.ExternalException.ErrorCode
System.Exception.GetBaseException()
System.Exception.GetType()
System.Exception.Message
System.Exception.Data
System.Exception.InnerException
System.Exception.TargetSite
System.Exception.StackTrace
System.Exception.HelpLink
System.Exception.Source
System.Exception.HResult
System.Exception.SerializeObjectState
System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.ReferenceEquals(System.Object, System.Object)
System.Object.GetHashCode()
System.Object.MemberwiseClone()
Namespace: Npgsql
Assembly: Npgsql.dll
Syntax
[Serializable]
public sealed class PostgresException : NpgsqlException, ISerializable, _Exception
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. System.ArgumentException).

See http://www.postgresql.org/docs/current/static/errcodes-appendix.html, http://www.postgresql.org/docs/current/static/protocol-error-fields.html

Constructors

PostgresException()

Creates a new instance.

Declaration
[Obsolete]
public PostgresException()
Remarks

Exists for backwards compat with 4.0, has been removed for 5.0.

PostgresException(String, String, String, String)

Creates a new instance.

Declaration
public PostgresException(string messageText, string severity, string invariantSeverity, string sqlState)
Parameters
Type Name Description
System.String messageText
System.String severity
System.String invariantSeverity
System.String sqlState

PostgresException(String, String, String, String, String, String, Int32, Int32, 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
System.String messageText
System.String severity
System.String invariantSeverity
System.String sqlState
System.String detail
System.String hint
System.Int32 position
System.Int32 internalPosition
System.String internalQuery
System.String where
System.String schemaName
System.String tableName
System.String columnName
System.String dataTypeName
System.String constraintName
System.String file
System.String line
System.String routine

Properties

Code

The SQLSTATE code for the error.

Declaration
[Obsolete("Use SqlState instead")]
public string Code { get; }
Property Value
Type Description
System.String
Remarks

Always present. Constants are defined in PostgresErrorCodes. See http://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
System.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
System.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
System.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
System.String

File

The file name of the source-code location where the error was reported.

Declaration
public string File { get; }
Property Value
Type Description
System.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
System.String

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
System.Int32

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
System.String

InvariantSeverity

Severity of the error or notice, not localized. Always present since PostgreSQL 9.6.

Declaration
public string InvariantSeverity { get; }
Property Value
Type Description
System.String

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
System.Boolean
Overrides
NpgsqlException.IsTransient

Line

The line number of the source-code location where the error was reported.

Declaration
public string Line { get; }
Property Value
Type Description
System.String

MessageText

The primary human-readable error message. This should be accurate but terse.

Declaration
public string MessageText { get; }
Property Value
Type Description
System.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
System.Int32

Routine

The name of the source-code routine reporting the error.

Declaration
public string Routine { get; }
Property Value
Type Description
System.String

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
System.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
System.String

SqlState

The SQLSTATE code for the error.

Declaration
public string SqlState { get; }
Property Value
Type Description
System.String
Remarks

Always present. Constants are defined in PostgresErrorCodes. See http://www.postgresql.org/docs/current/static/errcodes-appendix.html

Statement

Returns the statement which triggered this exception.

Declaration
public NpgsqlStatement Statement { get; }
Property Value
Type Description
NpgsqlStatement

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
System.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
System.String

Methods

GetObjectData(SerializationInfo, StreamingContext)

Populates a System.Runtime.Serialization.SerializationInfo with the data needed to serialize the target object.

Declaration
public override void GetObjectData(SerializationInfo info, StreamingContext context)
Parameters
Type Name Description
System.Runtime.Serialization.SerializationInfo info

The System.Runtime.Serialization.SerializationInfo to populate with data.

System.Runtime.Serialization.StreamingContext context

The destination (see System.Runtime.Serialization.StreamingContext) for this serialization.

Overrides
System.Exception.GetObjectData(System.Runtime.Serialization.SerializationInfo, System.Runtime.Serialization.StreamingContext)

ToString()

Declaration
public override string ToString()
Returns
Type Description
System.String
Overrides
System.Runtime.InteropServices.ExternalException.ToString()

Implements

System.Runtime.Serialization.ISerializable
System.Runtime.InteropServices._Exception
In This Article
Back to top Generated by DocFX