如何捕获PHP中的imagick致命错误
我正在使用imagick为pdf文档创建缩略图。我在这条线上遇到一个致命的错误如何捕获PHP中的imagick致命错误,php,imagick,Php,Imagick,我正在使用imagick为pdf文档创建缩略图。我在这条线上遇到一个致命的错误 $imagick->readImage($file .'[0]'); 我试着用try-catch包装,但据我所知,这不起作用,因为这是一个致命的错误,而不是一个例外。我怎样才能优雅地抓住这个错误呢 我更关心的是使用PHP检测错误,而不是解决imagick问题,因为用户pdf文件可能会出现任何数量的错误。谢谢 您可以使用以下设置自定义错误处理程序: 它应该显示在服务器错误日志中,这可以让您深入了解它失败的原因,
$imagick->readImage($file .'[0]');
我试着用try-catch包装,但据我所知,这不起作用,因为这是一个致命的错误,而不是一个例外。我怎样才能优雅地抓住这个错误呢
我更关心的是使用PHP检测错误,而不是解决imagick问题,因为用户pdf文件可能会出现任何数量的错误。谢谢 您可以使用以下设置自定义错误处理程序:
它应该显示在服务器错误日志中,这可以让您深入了解它失败的原因,并希望从一开始就防止它发生。除此之外,这取决于你想做什么。我用我的来调整图像大小和创建缩略图,这样我的检查就与之相关;imagick是否显示正确的尺寸,是否存在缩略图,并且文件大小是否大于0。不幸的是,在php中不可能捕获致命错误。这是给定的。您仍然可以做以下几件事:
register\u shutdown\u Function()注册的函数仍在执行。您可以将错误标记放入此类函数中,如果readImage()
成功,请注册空函数
exec('php thngenerate.php'.escapeshellarg($file.[0]”)、$out、$return\u var)执行它代码>。如果$return\u var!=0,出现错误
错误是什么?@PeeHaa OP明确表示这无关紧要。@Marek你在读什么帖子?@PeeHaa“更关心使用PHP检测错误,而不是解决imagick问题”阅读问题。不仅仅是随机问题。你不能盲目地去处理未知的错误。没有关键信息,任何人也无法合理地给出答案
function exceptionErrorHandler($errno, $errstr, $errfile, $errline ) {
throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
}
set_error_handler("exceptionErrorHandler");