這是預期的行爲爲Laravel。 Laravel會將任何錯誤轉換爲ErrorException
實例。以下是Illuminate/Foundation/Bootstrap/HandleExceptions.php
類中的bootstrap()
方法。
public function bootstrap(Application $app)
{
$this->app = $app;
error_reporting(-1);
set_error_handler([$this, 'handleError']);
set_exception_handler([$this, 'handleException']);
register_shutdown_function([$this, 'handleShutdown']);
if (! $app->environment('testing')) {
ini_set('display_errors', 'Off');
}
}
的error_reporting(-1);
將設置PHP報告所有錯誤(閱讀更多here)。
雖然這部分代碼:
set_error_handler([$this, 'handleError']);
將設置一個自定義錯誤處理程序。如果您檢查handleError()
方法,很明顯Laravel會將任何錯誤轉換爲ErrorException
實例。
public function handleError($level, $message, $file = '', $line = 0, $context = [])
{
if (error_reporting() & $level) {
throw new ErrorException($message, 0, $level, $file, $line);
}
}
瞭解更多關於自定義錯誤處理程序here。
希望這個清楚的事情。 :)
如果拋出特定的異常,您可以覆蓋其處理程序的行爲與默認行爲不同。請參閱Laravel Docs中的[this](https://laravel.com/docs/5.3/errors#the-exception-handler)。什麼是異常類? –
@IlkerMutlu類是ErrorException。這也很奇怪,因爲它是一個普通的例外。 –
然後你可以做的就是將''''ldap_bind'''調用包裝在try catch塊中。 –