Nearly all of Net_LDAPs methods return a Net_LDAP_Error object if something went wrong. You always should check for errors after you performed an action to be sure that your application doesn't do things you don't want it to do.
Handling errors is an easy task, you just have to test the return value as shown below. If an error occured, you can halt the script for example. In other cases, you may just log the error, but what exactly happens depends on your specific situation, of course.
You can use the getMessage() method of the error object to retrieve the error message explaining the problem and getCode() to get the error code which is usually the LDAP-Error code (see Table below) and may be used for automated reaction on errors.
Example 51-1. Dealing with errors
|
Table 51-1. Error codes Net_LDAP
Error code | Description |
---|---|
0x00 | LDAP_SUCCESS |
0x01 | LDAP_OPERATIONS_ERROR |
0x02 | LDAP_PROTOCOL_ERROR |
0x03 | LDAP_TIMELIMIT_EXCEEDED |
0x04 | LDAP_SIZELIMIT_EXCEEDED |
0x05 | LDAP_COMPARE_FALSE |
0x06 | LDAP_COMPARE_TRUE |
0x07 | LDAP_AUTH_METHOD_NOT_SUPPORTED |
0x08 | LDAP_STRONG_AUTH_REQUIRED |
0x09 | LDAP_PARTIAL_RESULTS |
0x0a | LDAP_REFERRAL |
0x0b | LDAP_ADMINLIMIT_EXCEEDED |
0x0c | LDAP_UNAVAILABLE_CRITICAL_EXTENSION |
0x0d | LDAP_CONFIDENTIALITY_REQUIRED |
0x0e | LDAP_SASL_BIND_INPROGRESS |
0x10 | LDAP_NO_SUCH_ATTRIBUTE |
0x11 | LDAP_UNDEFINED_TYPE |
0x12 | LDAP_INAPPROPRIATE_MATCHING |
0x13 | LDAP_CONSTRAINT_VIOLATION |
0x14 | LDAP_TYPE_OR_VALUE_EXISTS |
0x15 | LDAP_INVALID_SYNTAX |
0x20 | LDAP_NO_SUCH_OBJECT |
0x21 | LDAP_ALIAS_PROBLEM |
0x22 | LDAP_INVALID_DN_SYNTAX |
0x23 | LDAP_IS_LEAF |
0x24 | LDAP_ALIAS_DEREF_PROBLEM |
0x30 | LDAP_INAPPROPRIATE_AUTH |
0x31 | LDAP_INVALID_CREDENTIALS |
0x32 | LDAP_INSUFFICIENT_ACCESS |
0x33 | LDAP_BUSY |
0x34 | LDAP_UNAVAILABLE |
0x35 | LDAP_UNWILLING_TO_PERFORM |
0x36 | LDAP_LOOP_DETECT |
0x3C | LDAP_SORT_CONTROL_MISSING |
0x3D | LDAP_INDEX_RANGE_ERROR |
0x40 | LDAP_NAMING_VIOLATION |
0x41 | LDAP_OBJECT_CLASS_VIOLATION |
0x42 | LDAP_NOT_ALLOWED_ON_NONLEAF |
0x43 | LDAP_NOT_ALLOWED_ON_RDN |
0x44 | LDAP_ALREADY_EXISTS |
0x45 | LDAP_NO_OBJECT_CLASS_MODS |
0x46 | LDAP_RESULTS_TOO_LARGE |
0x47 | LDAP_AFFECTS_MULTIPLE_DSAS |
0x50 | LDAP_OTHER |
0x51 | LDAP_SERVER_DOWN |
0x52 | LDAP_LOCAL_ERROR |
0x53 | LDAP_ENCODING_ERROR |
0x54 | LDAP_DECODING_ERROR |
0x55 | LDAP_TIMEOUT |
0x56 | LDAP_AUTH_UNKNOWN |
0x57 | LDAP_FILTER_ERROR |
0x58 | LDAP_USER_CANCELLED |
0x59 | LDAP_PARAM_ERROR |
0x5a | LDAP_NO_MEMORY |
0x5b | LDAP_CONNECT_ERROR |
0x5c | LDAP_NOT_SUPPORTED |
0x5d | LDAP_CONTROL_NOT_FOUND |
0x5e | LDAP_NO_RESULTS_RETURNED |
0x5f | LDAP_MORE_RESULTS_TO_RETURN |
0x60 | LDAP_CLIENT_LOOP |
0x61 | LDAP_REFERRAL_LIMIT_EXCEEDED |
1000 | Unknown Net_LDAP Error |