@@ -462,26 +462,27 @@ The module defines the following exceptions:
462
462
are instead turned into exceptions, raised as soon an the error condition
463
463
is detected.
464
464
465
- The exceptions are accompanied by a dictionary possibly
466
- containing an string value for the key :py:const: `desc `
467
- (giving an English description of the error class)
468
- and/or a string value for the key :py:const: `info `
469
- (giving a string containing more information that the server may have sent).
470
-
471
- A third possible field of this dictionary is :py:const: `matched ` and
472
- is set to a truncated form of the name provided or alias dereferenced
473
- for the lowest entry (object or alias) that was matched.
474
-
475
- The field :py:const: `msgid ` is set in the dictionary where the
476
- exception can be associated with an asynchronous request.
477
- This can be used in asynchronous code where :py:meth: `result() ` raises the
478
- result of an operation as an exception. For example, this is the case for
479
- :py:meth: `compare() `, always raises the boolean result as an exception
480
- (:py:exc: `COMPARE_TRUE ` or :py:exc: `COMPARE_FALSE `).
481
-
482
- Most exceptions from protocol results also carry the :py:attr: `errnum `
483
- attribute.
484
-
465
+ The exceptions are accompanied by a dictionary with additional information.
466
+ All fields are optional and more fields may be added in the future.
467
+ Currently, ``python-ldap `` may set the following fields:
468
+
469
+ * ``'result' ``: a numeric code of the error class.
470
+ * ``'desc' ``: string giving a description of the error class, as provided
471
+ by calling OpenLDAP's ``ldap_err2string `` on the ``result ``.
472
+ * ``'info' ``: string containing more information that the server may
473
+ have sent. The value is server-specific: for example, the OpenLDAP server
474
+ may send different info messages than Active Directory or 389-DS.
475
+ * ``'matched' ``: truncated form of the name provided or alias.
476
+ dereferenced for the lowest entry (object or alias) that was matched.
477
+ * ``'msgid' ``: ID of the matching asynchronous request.
478
+ This can be used in asynchronous code where :py:meth: `result() ` raises the
479
+ result of an operation as an exception. For example, this is the case for
480
+ :py:meth: `~LDAPObject.compare() `, always raises the boolean result as an
481
+ exception (:py:exc: `COMPARE_TRUE ` or :py:exc: `COMPARE_FALSE `).
482
+ * ``'ctrls' ``: list of :py:class: `ldap.controls.LDAPControl ` instances
483
+ attached to the error.
484
+ * ``'errno' ``: the C ``errno ``, usually set by system calls or ``libc ``
485
+ rather than the LDAP libraries.
485
486
486
487
.. py :exception :: ADMINLIMIT_EXCEEDED
487
488
@@ -515,14 +516,14 @@ The module defines the following exceptions:
515
516
.. py :exception :: COMPARE_FALSE
516
517
517
518
A compare operation returned false.
518
- (This exception should never be seen because :py:meth: ` compare() ` returns
519
- a boolean result.)
519
+ (This exception should only be seen asynchronous operations, because
520
+ :py:meth: ` ~LDAPObject.compare_s() ` returns a boolean result.)
520
521
521
522
.. py :exception :: COMPARE_TRUE
522
523
523
524
A compare operation returned true.
524
- (This exception should never be seen because :py:meth: ` compare() ` returns
525
- a boolean result.)
525
+ (This exception should only be seen asynchronous operations, because
526
+ :py:meth: ` ~LDAPObject.compare_s() ` returns a boolean result.)
526
527
527
528
.. py :exception :: CONFIDENTIALITY_REQUIRED
528
529
0 commit comments