我正在使用imagick为pdf文档创建缩略图。我在这行得到一个致命的错误..
$imagick->readImage($file .'[0]');
我尝试在try catch中进行包装,但我了解到这不起作用,因为这是一个致命的错误,而不是一个异常。我如何优雅地捕捉到这个错误?
我更关心使用PHP来检测错误,而不是解决imagick问题,因为用户pdf文件可能会出现任何数量的错误。谢谢!
发布于 2015-01-27 07:15:03
不幸的是,在php中捕获致命错误是不可能的。这是给出的。你仍然可以做几件事:
仍会执行使用register_shutdown_function()
注册的
readImage()
成功了,注册空函数。exec('php thngenerate.php ' . escapeshellarg($file .'[0]'), $out, $return_var);
执行它。如果为$return_var != 0
,则出现错误。发布于 2015-01-26 19:55:48
它应该出现在服务器错误日志中,这可以让您深入了解它失败的原因,并希望从一开始就防止它发生。除此之外,这取决于你想要做什么。我使用我的来调整图像大小和创建缩略图,所以我的检查与此相关;imagick是否显示了正确的尺寸,是否存在缩略图,并且文件大小大于0。
发布于 2015-01-26 18:40:07
您可以使用set_error_handler设置自定义错误处理程序
function exceptionErrorHandler($errno, $errstr, $errfile, $errline ) {
throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
}
set_error_handler("exceptionErrorHandler");
https://stackoverflow.com/questions/28156447
复制相似问题