我有这样的代码:
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状态.还是此代码还有其他问题?您对此问题有何看法?
提前致谢.
解决方法:
是的,有一个异常层次结构,您应该始终开始捕获更具体的异常,最后捕获更广泛的异常.层次结构通常由继承确定.
在您的情况下,由于您最后捕获的是异常,这应该是因为您首先捕获的超时异常是引用另一个包或名称空间.您捕获的最后一个异常是其他异常的超类.