PHP 7 尝试 - 捕获:无法捕获“可捕获的致命错误”

Jar*_* K. 9 php try-catch

我正在玩try - catch块:

<?php
try {
    $str = "http://rejstrik-firem.kurzy.cz/73631604";
    $domOb = new DOMDocument();
    $html = $domOb->loadHTMLFile($str);
    $domOb->preserveWhiteSpace = false; 
    $container = $domOb->getElementById('ormaininfotab');   
    echo $container; // <========= this is intended error which I want catch
} 
catch (Exception $e) {
   echo "Exception" . $e->getMessage() . ". File: " . $e->getFile() . ", line: " . $e->getLine();
} 

catch (Error $e) {
   echo "Error" . $e->getMessage() . ". File: " . $e->getFile() . ", line: " . $e->getLine();
}
?>
Run Code Online (Sandbox Code Playgroud)

我的结果是这样的:

可捕获的致命错误:在第 8 行的 /var/www/html/cirkve_ares/test.php 中,类 DOMElement 的对象无法转换为字符串

为什么这个错误没有被第二次捕获捕获?

use*_*001 2

有人将此作为一个错误报告给 PHP 开发人员,他们立即认为这不是一个错误。https://bugs.php.net/bug.php?id=72948&edit=3

这种情况已被故意省略...(实际上,您可以简单地使用错误处理程序将可恢复的致命错误转换为异常...)

所以你仍然需要使用

设置错误处理程序()

功能,我们都希望留下它。PHP 开发人员非常擅长永远不会让你的日子太晴朗......