我正在尝试遵循我可以尝试/捕获警告吗? 并将所有警告视为例外。我可以在自定义错误处理程序中获取错误详细信息,但我在 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 数组。