我正在尝试关注Can I try/catch a warning?并将所有警告视为例外。我可以在自定义错误处理程序中获取错误详细信息,但是我在catch块中得到的ErrorException总是为空。
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));
}
答案 0 :(得分:1)
这回答:Exception message not being shown if json_encode is applied to the output
在我的代码中,我所要做的就是以下内容:
catch (Exception $e) {
$data['exception'] = $e->getMessage();
}
echo json_encode($data);
这足以让我的异常数据通过我的JSON数组。