Kit.Core/LibExternal/Npgsql/NpgsqlOperationInProgressEx...

34 lines
1.2 KiB
C#

using Npgsql.Internal;
namespace Npgsql;
/// <summary>
/// Thrown when trying to use a connection that is already busy performing some other operation.
/// Provides information on the already-executing operation to help with debugging.
/// </summary>
public sealed class NpgsqlOperationInProgressException : NpgsqlException
{
/// <summary>
/// Creates a new instance of <see cref="NpgsqlOperationInProgressException" />.
/// </summary>
/// <param name="command">
/// A command which was in progress when the operation which triggered this exception was executed.
/// </param>
public NpgsqlOperationInProgressException(NpgsqlCommand command)
: base("A command is already in progress: " + command.CommandText)
{
CommandInProgress = command;
}
internal NpgsqlOperationInProgressException(ConnectorState state)
: base($"The connection is already in state '{state}'")
{
}
/// <summary>
/// If the connection is busy with another command, this will contain a reference to that command.
/// Otherwise, if the connection if busy with another type of operation (e.g. COPY), contains
/// <see langword="null" />.
/// </summary>
public NpgsqlCommand? CommandInProgress { get; }
}