16.1 Introduction

CLX error conditions are hierarchial. The base error condition is x-error, and all other conditions are built on top of x-error. x-error can be built on a lower-level condition that is implementation dependent (this is probably the error condition).



define-condition name (parent-types*) [({slot-specifier*}) {option*}] Macro
        

Any new condition type must be defined with the define-condition macro. A condition type has a name, parent types, report message, and any number of slot items. See the Lisp Reference manual for further information regarding define-condition.

The following are the predefined error conditions that can occur in CLX.



access-error Condition
        

An access-error can occur for several reasons:

  • A client attempted to grab a key/button combination already grabbed by another client
  • A client attempted to free a colormap entry that it did not already allocate
  • A client attempted to store into a read-only colormap entry
  • A client attempted to modify the access control list from other than the local (or otherwise authorized) host
  • A client attempted to select an event type that another client has already selected, and, that at most, one client can select at a time

An access-error is a special case of the more general request-error (see page 16-189 for information on request-error).



alloc-error Condition
        

The server failed to allocate the requested resource or server memory.

An alloc-error is a special case of the more general request-error (see page 16-189 for information on request-error).



atom-error Condition
        

A value for an atom argument does not name a defined atom.

An atom-error is a special case of the more general request-error (see page 16-189 for information on request-error).



closed-display Condition
        

The closed-display condition is signaled when trying to read or write a closed display (that is, close-display has been called on the display object, or a server-disconnect occurred). The closed-display object is reported with the error.

A closed-display condition is a special case of the more general x-error (see page 16-190 for information on x-error).



colormap-error Condition
        

A value for a colormap argument does not name a defined colormap.

A colormap-error is a special case of the more general resource-error (see page 16-189 for information on resource-error).



connection-failure Condition
        

Signaled when an X11 server refuses a connection. The following items are reported along with the error:

  • major-version -- The major version of the X server code.
  • minor-version -- The minor version of the X server code.
  • host -- The host name for the X server.
  • display -- The display on which the error occurred.
  • reason -- A string indicating why the connection failed.

A connection-failure is a special case of the more general x-error (see page 16-190 for information on x-error).



cursor-error Condition
        

A value for a cursor argument does not name a defined cursor.

A cursor-error is a special case of the more general resource-error (see page 16-189 for information on resource-error).



device-busy Condition
        

Signaled by (setf (pointer-mapping display) mapping) when the set-pointer-mapping request returns a busy status. A similar condition occurs in set-modifier-mapping, but in this case, it returns a boolean indicating success, rather than signaling an error. The device-busy condition returns the display object as part of the error.

A device-busy condition is a special case of the more general x-error (see page 16-190 for information on x-error).



drawable-error Condition
        

A value for a drawable argument does not name a defined window or pixmap.

A drawable-error is a special case of the more general resource-error (see page 16-189 for information on resource-error).



font-error Condition
        

A value for a font or gcontext argument does not name a defined font.

A font-error is a special case of the more general resource-error (see page 16-189 for information on resource-error).



gcontext-error Condition
        

A value for a gcontext argument does not name a defined GContext.

A gcontext-error is a special case of the more general resource-error (see page 16-189 for information on resource-error).



id-choice-error Condition
        

The value chosen for a resource identifier is either not included in the range assigned to the client or is already in use. Under normal circumstances, this cannot occur and should be considered a server or CLX library error.

An id-choice-error is a special case of the more general resource-error (see page 16-189 for information on resource-error).



implementation-error Condition
        

The server does not implement some aspect of the request. A server that generates this error for a core request is deficient. As such, this error is not listed for any of the requests. However, clients should be prepared to receive such errors and either handle or discard them.

An implementation-error is a special case of the more general resource-error (see page 16-189 for information on resource-error).



length-error Condition
        

The length of a request is shorter or longer than that minimally required to contain the arguments. This usually means an internal CLX error.

A length-error is a special case of the more general resource-error (see page 16-189 for information on resource-error).



lookup-error Condition
        

CLX has the option of caching different resource types (see *clx-cached-types*) in a hash table by resource ID. When looking up an object in the hash table, if the type of the object is wrong, a lookup-error is signaled.

For example: The cursor with ID 123 is interned in the hash table. An event is received with a field for window 123. When 123 is looked up in the hash table, a cursor is found. Since a window was expected, a lookup-error is signaled. This error indicates a problem with the extension code being used. The following items are reported along with the error:

  • id -- The resource ID.
  • display -- The display being used.
  • type -- The resource type.
  • object -- The resource object.

A lookup-error is a special case of the more general x-error (see page 16-190 for information on x-error).



match-error Condition
        

In a graphics request, the root and depth of the GContext does not match that of the drawable. An :input-only window is used as a drawable. Some argument or pair of arguments has the correct type and range but fails to match in some other way required by the request. An :input-only window locks this attribute. The values do not exist for an :input-only window.

A match-error is a special case of the more general request-error (see page 16-189 for information on request-error).



missing-parameter Condition
        

One or more of the required keyword parameters is missing or nil. The missing parameters are reported along with the error.

A missing-parameter condition is a special case of the more general x-error (see page 16-190 for information on x-error).



name-error Condition
        

A font or color of the specified name does not exist.

A name-error is a special case of the more general request-error (see page 16-189 for information on request-error).



pixmap-error Condition
        

A value for a pixmap argument does not name a defined pixmap.

A pixmap-error is a special case of the more general resource-error. (See page 16-189 for information on resource-error.)



reply-length-error (x-error) (slots*) Condition
        

The reply to a request has an unexpected length. The following items are reported along with the error:

  • reply-length -- The actual reply length.
  • expected-length -- The expected reply length.
  • display -- The display on which the error occurred.

A reply-length-error is a special case of the more general x-error (see page 16-190 for information on x-error).



reply-timeout Condition
        

The *reply-timeout* parameter specifies the maximum number of seconds to wait for a request reply, or nil to wait forever (the default). When a reply has not been received after *reply-timeout* seconds, the reply-timeout condition is signaled. The timeout period and display are reported along with the error.

A reply-timeout condition is a special case of the more general x-error (see page 16-190 for information on x-error).



request-error Condition
        

The following items are reported along with the error:

The major or minor opcode does not specify a valid request.

  • display -- The display on which the error occurred.
  • error-key -- The error (sub)type.
  • major -- The major opcode.
  • minor -- The minor opcode.
  • sequence -- The actual sequence number.
  • current-sequence -- The current sequence number.

A request-error condition is a special case of the more general x-error (see page 16-190 for information on x-error).



resource-error Condition
        

All X11 errors for incorrect resource IDs are built on top of resource-error. These are colormap-error, cursor-error, drawable-error, font-error, gcontext-error, id-choice-error, pixmap-error and window-error. resource-error is never signaled directly.

A resource-error is a special case of the more general request-error (see page 16-189 for information on request-error).



sequence-error Condition
        

All X11 request replies contain the sequence number of their request. If a reply's sequence does not match the request count, a sequence-error is signaled. A sequence-error usually indicates a locking problem with a multi-processing Lisp. The following items are reported along with the error:

  • display -- The display on which the error occurred.
  • req-sequence -- The sequence number in the reply.
  • msg-sequence -- The current sequence number.

A sequence-error condition is a special case of the more general x-error. (See page 16-190 for information on x-error.)



server-disconnect Condition
        

The connection to the server was lost. The display on which the error occurred is reported along with the error.

A server-disconnect condition is a special case of the more general x-error. (See page 16-190 for information on x-error.)



unexpected-reply Condition
        

A reply was found when none was expected. This indicates a problem with the extension code. The following items are reported along with the error:

  • display -- The display on which the error occurred.
  • req-sequence -- The sequence number in the reply.
  • msg-sequence -- The current sequence number.
  • length -- The message length of the reply.

An unexpected-reply condition is a special case of the more general x-error. (See page 16-190 for information on x-error.)



unknown-error (request-error) (error-code) Condition
        

An error was received from the server with an unknown error code. This indicates a problem with the extension code. The undefined error code is reported.

An unknown-error is a special case of the more general request-error. (See page 16-189 for information on request-error.)



value-error (request-error) (value) Condition
        

Some numeric value falls outside the range of values accepted by the request. Unless a specific range is specified for an argument, the full range defined by the argument's type is accepted. Any argument defined as a set of alternatives can generate this error. The erroneous value is reported.

A value-error is a special case of the more general request-error. (See page 16-189 for information on request-error.)



window-error (resource-error) Condition
        

A value for a window argument does not name a defined window.

A window-error is a special case of the more general resource-error. (See page 16-189 for information on resource-error.)



x-error Condition
        

This is the most general error condition upon which all other conditions are defined.