python - 使用 ldap 在 python 中处理错误

标签 python error-handling ldap

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

如果我没有域绑定(bind)/VPN,它将抛出此消息:

{'desc': "Can't contact LDAP server"}

如果凭据不正确:

Invalid credentials

我的脚本中没有为错误消息定义任何地方,我如何找到它在哪里获取要打印该消息的内容,并可能创建或自定义它? (我使用 PyCharm 的值(value))

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

谢谢

最佳答案

您可以执行类似的操作来为特定异常提供特定消息。

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))

关于python - 使用 ldap 在 python 中处理错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43511453/

相关文章:

python - 无法将python脚本结果重定向到Windows中的文本文件

python - 如何评估 Sympy Optics 模块的 TWave 实例?

python - 在 Docker 容器中运行 Flask 应用程序

spring - 从BindingResult中的ObjectError中获取FieldErrors

vb.net - 如何处理跨线程操作中的错误

spring - 404 Error on/spring_security_login 从 Tomcat 6 迁移到 Tomcat 7 后的 Spring Security 3.2

python - 为什么 Popen.terminate() 在 Windows 上终止使用命令解释器 (cmd.exe) 运行的子进程?

Angular2,RxJS主题http请求 - 错误请求不会再次触发

active-directory - 如何在 LDAP 上运行范围查询

c# - 无法连接到我的本地 LDAP 服务器 : "the server is not operational"