繁体   English   中英

PHP异常显示在try和catch块中

[英]PHP Exception shows anyway in try & catch block

我有一个非常奇怪的情况:下面显示的代码应该在PHP中不打印错误。

try {
    throw new Exception('foo');
} catch(Exception $e) {
    // here could be some custom functions to handle errors
    die();
}

在我的计算机上打印

( ! ) SCREAM: Error suppression ignored for
( ! ) Exception: foo. in D:\wamp\www\index.php on line 4

为什么? 哪个php ini选项呢?

Scream扩展是针对开发人员的扩展,因此即使通常会被抑制,他们也可以从代码中看到错误消息。

xDebug是另一个开发人员扩展,也包含相同的功能。

如果您具有这些扩展中的任何一个,则可以在PHP配置中禁用Scream功能。

但这些扩展都不应该在生产系统上使用 - 它们仅用于开发人员的系统。 如果它在您的实时站点上,则应完全禁用该扩展。

http://www.php.net/manual/en/scream.examples-simple.php

通常,尖叫用于覆盖静默运算符(@),但如果也将其用作try catch,则...也可以尝试使用内联ini_set将其关闭,看看是否可以解决该问题。

谢谢大家的答案。 是的,问题是Xdebug的,更准确: xdebug.show_exception_trace选项,这是转向。 on

正如我们从xdebug文档中看到的:

xdebug.show_exception_trace
类型:整数,默认值:0
当此设置设置为1时,Xdebug将在引发异常时显示堆栈跟踪 - 即使实际捕获到此异常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM