PHP 尝试使用自定义错误处理程序捕获总是返回空异常



我正在尝试遵循我可以尝试/捕获警告吗? 并将所有警告视为例外。我可以在自定义错误处理程序中获取错误详细信息,但我在 catch 块中获得的错误异常始终为空。

private function SetCustomExceptionHandler() {
        set_error_handler(function($errno, $errstr, $errfile, $errline, array $errcontext) {
            log_message('error', '$errno ' . $errno);
            log_message('error', '$errstr ' . $errstr);
            log_message('error', '$errfile ' . $errfile);
            log_message('error', '$errline ' . $errline);
            log_message('error', '$errcontext ' . json_encode($errcontext));
            throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
        });
    }
$this->SetCustomExceptionHandler();
            try {
                //LDAP query that returns: ldap_search(): Partial search results returned: Sizelimit exceeded
            }
            catch (ErrorException $e) {
                log_message('error', json_encode($e));
            }

这里回答了这个问题:如果将json_encode应用于输出,则不显示异常消息

在我的代码中,我所要做的就是以下内容:

catch (Exception $e) {
    $data['exception'] = $e->getMessage();
}
echo json_encode($data);

这足以让我的异常数据通过我的 JSON 数组。

相关内容

  • 没有找到相关文章

最新更新