Skip to main content
 首页 » 编程设计

python之为什么所有异常都被 ldap.SERVER_DOWN 捕获

2025年05月04日9lovecherry

我有一些类似下面的代码,我正在尝试连接一个不存在的服务器来测试超时。 120 秒后,程序以代码 5 退出。而且,我从 LAN 断开连接以测试 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) 

请您参考如下方法:

根据 python-ldap 源代码,看起来只有 NonblockingLDAPObject 可以引发异常 ldap.TIMEOUT。您不必为 SimpleLDAPObject 处理它。