【问题标题】:How does one suppress error output when instantiating a class in PHP?在 PHP 中实例化一个类时如何抑制错误输出?
【发布时间】:2012-11-08 23:15:55
【问题描述】:

警告 - 我不是在寻找关于抑制错误的讲座:)

我在 PHP 脚本中实例化 Imagick() 类。当请求的页面在 PDF 中不存在时,它会输出错误。我知道这个错误。我知道它为什么会发生,而且我不相信有办法避免它在我的代码中发生,因为加载大型 PDF 的完整文件是处理器密集型的,我只处理 PDF 的前几页(@ 987654321@).

我想像使用 PHP 函数 (@php_function()) 一样抑制错误输出。也许这是不可能的。

这是输出的错误:

Requested FirstPage is greater than the number of pages in the file: 2
No pages will be processed (FirstPage > LastPage).

如果可能的话,我会怎么做?

我已经尝试了这两件事,但意识到 Imagick 类在这里没有输出标准的 PHP 错误:

$Image = @new Imagick( $this->file_path_pdf . '[5]' );
$Image = new @Imagick( $this->file_path_pdf . '[5]' );

【问题讨论】:

  • 你试过用try/catch包装它吗?
  • 它在我的代码中包含在 try / catch 中,但这不是例外,它是 Imagick 类的实际输出)。
  • 我只是面临同样的问题。我无法抑制这个“错误”输出。捕获异常有效,但“在”消息发出之后。 ob_start 也无济于事。

标签: php class instantiation imagick


【解决方案1】:

在表达式周围加上括号应该可以:

$Image = @(new Imagick( $this-file_path_pdf . '[5]' ));

try/catch 仅适用于例外情况。

【讨论】:

  • 不适用于这个特定的错误输出。使用 Imagick 类可能是不可能的。我可能会深入研究类代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-08-11
  • 1970-01-01
  • 1970-01-01
  • 2017-06-09
  • 2014-01-03
  • 1970-01-01
相关资源
最近更新 更多