中捕捉到imagick致命错误我正在使用imagick为pdf文档创建缩略图。我得到这一行一个致命的错误..如何在PHP
$imagick->readImage($file .'[0]');
我试过包装在一个尝试捕捉,但我了解到,不起作用,因为它是一个致命的错误,也不例外。我将如何优雅地捕捉到这个错误?
我更关心使用PHP来检测错误,而不是解决imagick问题,因为任何数量的错误可能会出现用户的PDF文件。谢谢!
中捕捉到imagick致命错误我正在使用imagick为pdf文档创建缩略图。我得到这一行一个致命的错误..如何在PHP
$imagick->readImage($file .'[0]');
我试过包装在一个尝试捕捉,但我了解到,不起作用,因为它是一个致命的错误,也不例外。我将如何优雅地捕捉到这个错误?
我更关心使用PHP来检测错误,而不是解决imagick问题,因为任何数量的错误可能会出现用户的PDF文件。谢谢!
您可以set_error_handler设置自定义错误处理程序:
function exceptionErrorHandler($errno, $errstr, $errfile, $errline) {
throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
}
set_error_handler("exceptionErrorHandler");
应该在服务器错误日志可以帮助您深入了解失败的原因,并希望防止它在第一时间发生的事情出现。除此之外,这取决于你想要做什么。我使用我的图像调整大小和创建缩略图,所以我的检查与此有关; imagick是否显示正确的尺寸并且是缩略图,并且文件大小大于0.
不幸的是,在php中捕捉致命错误是不可能的。这是给出的。还有几件事你可以做:
功能注册使用register_shutdown_function()
仍然执行。你可以把你的错误放到这个函数中,如果readImage()
成功,注册空函数。
您可以将缩略图生成到php命令行脚本中,并使用exec('php thngenerate.php ' . escapeshellarg($file .'[0]'), $out, $return_var);
执行它。如果$return_var != 0
发生错误。
与#2类似,但使用http调用脚本,这次您观察内部服务器错误。
* *错误是什么? – PeeHaa 2015-01-26 18:38:11
@PeeHaa OP明确表示没关系。 – Marek 2015-01-26 18:40:25
@Marek你在阅读什么文章? – PeeHaa 2015-01-26 18:42:58