使用ldap在python中处理错误

时间:2017-04-20 06:06:30

标签: python error-handling ldap

我在下面有这个代码,它是一个正在研究的python脚本的一部分(一次拼凑成块作为学习曲线)。此位绑定到要查询的ldap目录,因此脚本的其余部分可以查询。 成功后,它将在块中打印以下消息。如果不成功则会抛出错误 - 或者至少我想控制错误。

如果我不是域绑定/ vpn,它将抛出此消息:

Invalid credentials

如果凭据不正确:

try:
    l = ldap.open(server)
    l.simple_bind_s(user, pwd)
    #if connection is successful print:
    print "successfully bound to %s.\n" %server
    l.protocol_version = ldap.VERSION3
except ldap.LDAPError, e:
    print e

我的脚本中没有任何地方为错误消息定义,我怎样才能找到它在哪里打印那些消息 - 并可能创建或定制它? (因为它值得我使用PyCharm)

{{1}}

感谢

1 个答案:

答案 0 :(得分:1)

你可以做这样的事情来为特定的例外提供特定的信息。

try:
    foo = 'hi'
    bar = 'hello'
    #do stuff
except ValueError:
    raise ValueError("invalid credientials: {},{}".format(foo, bar))

所以在你的例子中它可能变成

except ldap.LDAPError:
    raise ldap.LDAPError("invalid credientials: {},{}".format(user, pwd))

或者如果你真的只想打印它

except ldap.LDAPError:
    print("invalid credientials: {},{}".format(user, pwd))