在Cakephp 3中捕获致命错误

snz8szmq  于 2023-02-23  发布在  PHP
关注(0)|答案(1)|浏览(158)

我试图捕捉错误时,无效的数据到imagecreatefromjpeg传递.蛋糕php显示错误页面说Fatal Error Cake\Error\FatalErrorException所以这段代码应该工作,但它不是:

try {
                $src_img = imagecreatefromjpeg($image);
            } catch (\Cake\Error\FatalErrorException $e) {
                echo 'Caught exception: ',  $e->getMessage(), "\n";
            }

我还尝试使用\Exception\Cake\Core\Exception\Exception\ErrorException,但没有成功。

gopyfrb3

gopyfrb31#

imagecreatefromjpeg()通常不会导致致命错误,而只会导致警告,您可能需要进一步调查。
无论如何,通过try...catch捕捉致命错误只能在PHP 7中实现,在PHP 7中,大多数错误都被修改为异常。在这种情况下,您必须捕捉\Error\Throwable。然而,仍然有致命错误无法捕捉,例如当require()失败时,或内存溢出时。
\Cake\Error\FatalErrorException是在常规错误处理程序中内部创建的,其中将处理(未捕获的)致命错误,即未抛出异常,因此无法捕获。
另见

      • 一个
      • 第一个e第一个f第一个x
      • 一个月一次**
      • CakePHP源代码〉\Cake\错误\基本错误处理程序::handleFatalError()**

相关问题