Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是python ldap';在层次结构中组织的异常?_Python_Exception_Ldap_Custom Exceptions - Fatal编程技术网

是python ldap';在层次结构中组织的异常?

是python ldap';在层次结构中组织的异常?,python,exception,ldap,custom-exceptions,Python,Exception,Ldap,Custom Exceptions,我有这样一个代码: 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 l

我有这样一个代码:

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)
我试图抓住各种各样的例外情况。但是,所有例外情况都属于服务器故障。例如,当出现超时异常时,它会进入服务器关闭异常,等等。我想知道是否有类似于异常层次结构的东西,这就是为什么它总是进入服务器关闭状态。或者这个代码还有其他问题吗?你对这个问题有什么看法?
提前感谢。

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


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

如果
IsubClass(type(raised),在\u except\u子句中命名为\u)
,则将触发except子句。因此,如果引发一个异常“is a”
ldap.SERVER\u DOWN
,并且它不是前面的except子句中的任何异常,那么将触发最后一个except子句。似乎没有说明LDAP特定异常的层次结构,但您始终可以在REPL中探索它。

您是否检查了捕获的异常的实际类型,以确保它是LDAP.TIMEOUT而不是LDAP.SERVER\u,并显示一条消息,说明它是超时?我解决了这个问题。我检查过了,服务器坏了。只是我用错误的方法测试了它。我给了bind方法一个不存在的ip。超时用于搜索方法。谢天谢地,在层次结构中没有问题,也没有像bind方法超时这样的异常。ldap.TIMEOUT用于搜索方法。我不知道。顺便谢谢你