【发布时间】:2016-11-11 12:40:56
【问题描述】:
我正在尝试使用 Laravel 连接到 LDAP 服务器。重要的是,我使用的是 PHP 函数 ldap_connect 和 ldap_bind,而不是使用包来处理它。
关键是当我提供错误的用户名和密码时,ldap_bind 函数会给我们一个 PHP 警告。我可以接受这个警告,并且正如文档中所述,当绑定没有发生时,该函数返回 false。
但是,当这个警告被触发时,Laravel 会抛出一个异常。这不是异常,Laravel 不应该抛出异常,我不想将其作为异常处理;我只需要构建一个if 条件,它将向用户返回一条消息。
Laravel 是否将所有警告都视为异常?
【问题讨论】:
-
如果抛出特定异常,您可以覆盖其处理程序以使其行为不同于默认值。请参阅 Laravel 文档中的 this。什么是异常类?
-
@IlkerMutlu 该类是 ErrorException。这也很奇怪,因为它是一个通用异常。
-
那么你可以做的就是将
ldap_bind调用包装在一个try catch块中。 -
@IlkerMutlu 我做到了!但关键是一个简单的 PHP 文件不会抛出异常。为什么 Laravel 会这样做?而且,正如我上面所说,抛出的异常是如此通用!
标签: php laravel exception ldap