### 4.1 X Error Classes ¶

X errors are structured in the following class hierarchy:

    Exception
     \_ error.XError
         \_ error.BadRequest
         \_ error.BadValue
         \_ error.BadAtom
         \_ error.BadMatch
         \_ error.BadAccess
         \_ error.BadAlloc
         \_ error.BadName
         \_ error.BadLength
         \_ error.BadImplementation
         \_ error.XResourceError
             \_ error.BadWindow
             \_ error.BadPixmap
             \_ error.BadCursor
             \_ error.BadFont
             \_ error.BadDrawable
             \_ error.BadColor
             \_ error.BadGC
             \_ error.BadIDChoice

All error objects has the following attributes:

`code`

  The numeric error code

`sequence_number`

  The sequence number of the failed request

`resource_id`

  The bad resource id. For all the `error.XResourceError` this is a X resource object. For the other errors it is an integer, which for some errors might have no meaning

`major_opcode`

  The major opcode for the failed request

`minor_opcode`

  The minor opcode for the failed request. This will be zero for all base X11R6 request, but will be interesting for extension requests