我正在阅读PHP中的XML文件,并希望在try catch
块中执行此操作,以便我可以处理异常(损坏的文件)。
所以我的代码看起来像这样:
try{
$xml = simplexml_load_string($file);
} catch (Exception $ex) {
//do stuff
}
但是我没有抓住这个异常消息:
ContextErrorException: Warning: simplexml_load_string(): Entity: line 4284: parser error : Premature end of data in tag Data line 2201
我甚至不确定这是否是一个真正的异常,因为之后的Warning:
,它是一个警告而不是异常吗?如果是例外,为什么我不能抓住它?
答案 0 :(得分:0)
我通过更改错误处理程序自行修复它:
set_error_handler(
function($errno, $errstr, $errfile, $errline, array $errcontext)
{
throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
}
);
我不确定,但我猜测我收到的异常确实是一个警告,所以它无法被捕获。