View Source Xandra.ConnectionError exception (Xandra v0.18.0)

An exception struct that represents an error in the connection to the Cassandra server.

For more information on when this error is returned or raised, see the documentation for the Xandra module.

The :action field represents the action that was being performed when the connection error occurred. The :reason field represents the reason of the connection error: for network errors, this is usually a POSIX reason (like :econnrefused). The following Xandra-specific reasons are supported:

  • {:unsupported_compression, algorithm} - this happens when a :compressor module has been specified in Xandra.start_link/1, but negotiating the connection algorithm fails because such compressor module uses an algorithm that the Cassandra server does not support.

  • :disconnected - the connection closed in the middle of a request to the server.

  • {:connection_process_crashed, reason} - the connection process crashed before sending a response.

  • :timeout - the connection timed out while waiting for a response from the server.

  • {:cluster, :not_connected} - this happens when a Xandra.Cluster-based connection is not connected to any node (for example, because all the specified nodes are currently down). See the documentation for Xandra.Cluster for more information.

Since this struct is an exception, it is possible to raise it with Kernel.raise/1. If the intent is to format connection errors as strings (for example, for logging purposes), it is possible to use Exception.message/1 to get a formatted version of the error.

Summary

Types

@type t() :: %Xandra.ConnectionError{
  __exception__: true,
  action: String.t(),
  reason: term()
}

Functions

@spec new(String.t(), term()) :: t()