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