Net_LDAP のほぼすべてのメソッドは、何か問題が発生すると Net_LDAP_Error オブジェクトを返します。 何かの操作をしたあとは常にエラーが発生していないかどうかを確認し、 予期せぬ結果を引き起こさないようにしましょう。
エラー処理は簡単な作業です。 単に、以下のように返り値を調べるだけでいいのです。 もしエラーが発生していたら、たとえばスクリプトを停止するなどの処置をとります。 あるいは、単にログに出力するだけでもいいかもしれません。 実際にどんな処理をするかは、もちろん状況によって異なります。
エラーオブジェクトの getMessage() メソッドを使用すると、エラーメッセージを取得することができます。 また getCode() を使用すると、 エラーコードを取得することができます。これは通常は LDAP エラーコード (以下の表を参照ください) となり、この値を使用してエラー処理を自動的に行うこともできます。
例 54-1エラー処理
|
表 54-1Net_LDAP のエラーコード
エラーコード | 説明 |
---|---|
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 |