python-ldap的异常是否按层次结构组织?

我有这样的代码:

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)

我正在尝试捕捉各种异常.但是,所有异常都属于SERVER_DOWN.例如,当有超时异常时,它属于SERVER_DOWN异常,等等.我想知道是否有类似异常的层次结构,这就是为什么它总是处于SERVER_DOWN状态.还是此代码还有其他问题?您对此问题有何看法?
提前致谢.

解决方法:

是的,有一个异常层次结构,您应该始终开始捕获更具体的异常,最后捕获更广泛的异常.层次结构通常由继承确定.

在您的情况下,由于您最后捕获的是异常,这应该是因为您首先捕获的超时异常是引用另一个包或名称空间.您捕获的最后一个异常是其他异常的超类.

上一篇:c#-DirectoryEntries.Find:“指定了无效的dn语法”


下一篇:php-带有LDAP错误的Dokuwiki:用户身份验证暂时不可用