为什么所有异常都被ldap.SERVER_DOWN捕获?
我有一些代码,想要连接一个不存在的服务器来测试超时。经过120秒后,程序以代码5退出。此外,我还断开了局域网连接来测试连接错误,结果又以代码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 个回答
0
要测试是否忙碌,你可以连接到一个正常工作的LDAP服务器,然后不要关闭这个连接。当你再尝试连接的时候,服务器应该会返回一个忙碌的错误。
1
根据python-ldap的源代码,似乎只有NonblockingLDAPObject
这个对象会引发ldap.TIMEOUT
这个异常。对于SimpleLDAPObject
来说,你不需要处理这个异常。