【发布时间】:2014-10-28 14:03:05
【问题描述】:
当出现通知或警告时,图像会失败。但是,我无法收到通知或警告。
<?php
$image = new Imagick($resource);
try {
$image->setImageCompressionQuality("Should be a Number Here not String");
}
catch ( ImagickException $e ) {
echo "This is a catch"; // should catch here but nope!
}
?>
上面的代码应该被捕获,因为传递的字符串 when 应该是 INT。 图像失败,但 catch 不执行。我仍然收到此消息:
注意:使用未定义的常量应该是一个数字而不是字符串 - 在第 15 行的 /var/www/class.php 中假定为“d” 警告:Imagick::setimagecompressionquality() 期望参数 1 很长,字符串在第 15 行的 /var/www/class.php 中给出
我也试过(异常 $e)
【问题讨论】:
-
因为这只是一个警告/通知。这不是一个例外。只有当某些东西实际上是
throws 时才会发生异常。 -
@MarcB 好的,有道理,但图像输出仍然失败,那么该怎么办?
-
不要传入无效选项?
-
@MarcB 哈哈,是的。希望不会,但是当您无法控制参数值时,您就会遇到一个严重的问题!
-
很容易测试提供的值是否为数字。
标签: php exception-handling imagemagick try-catch imagick