从Symfony2捕获ContextErrorException

时间:2014-07-17 08:47:06

标签: php symfony error-handling

我正在阅读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:,它是一个警告而不是异常吗?如果是例外,为什么我不能抓住它?

1 个答案:

答案 0 :(得分:0)

我通过更改错误处理程序自行修复它:

set_error_handler(
    function($errno, $errstr, $errfile, $errline, array $errcontext)
    { 
        throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
    }
);

我不确定,但我猜测我收到的异常确实是一个警告,所以它无法被捕获。