почему все исключения перехватываются ldap.SERVER_DOWN? - PullRequest
2 голосов
/ 11 июля 2011

У меня есть некоторый код, как показано ниже, я пытаюсь подключиться к серверу, который не существует для проверки тайм-аута. через 120 секунд программа завершает работу с кодом 5. и более, я отключаюсь от локальной сети, чтобы проверить connect_error, и он снова завершается с кодом 5. почему все исключения перехватываются ldap.SERVER_DOWN? Как я могу проверить другие исключения?

try:
    ....

    l.simple_bind_s(user, password)

except ldap.CONNECT_ERROR, e:
    sys.exit(1)

except ldap.BUSY, e:
    sys.exit(2)

except ldap.OPT_NETWORK_TIMEOUT, e:
    sys.exit(3)

except ldap.TIMEOUT, e: 
    sys.exit(4)

except ldap.SERVER_DOWN, e:
    sys.exit(5)

Ответы [ 2 ]

1 голос
/ 17 ноября 2011

Исходя из источника python-ldap, похоже, что только NonblockingLDAPObject может вызвать исключение ldap.TIMEOUT.Вы не должны обращаться с этим за SimpleLDAPObject.

0 голосов
/ 15 февраля 2012

Для проверки на занятость вы можете привязать к работающему серверу LDAP, а затем не закрывать (отменять привязку) соединение. При повторной попытке подключения сервер должен выдать ошибку BUSY.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...