【问题标题】:PHP5: Why is try/catch failing?PHP5:为什么 try/catch 失败?
【发布时间】:2010-10-16 01:59:02
【问题描述】:

在我的 XAMPP/Win XP 构建中,PHP5.2.3 无法捕获任何异常。 examples 都不起作用,而且:

try {
    throw new Exception('Fail');
} catch (Exception $e) {
    echo 'Succeed';
}

...结果:

致命错误:未捕获的异常 带有消息“失败”的“异常” M:\path\to\test.php:4 堆栈跟踪:#0 M:\path\to\test.php 中抛出的 {main} 上线4

PHP 的所有错误设置似乎都是标准的。服务器是 Apache/2.2.4

【问题讨论】:

    标签: php exception xampp try-catch


    【解决方案1】:

    这取决于 eAccelerator 的 XAMPP 构建。在某一时刻,它有 trouble optimizing try/catch statements 并忽略了它们。

    问题出在 0.9.5 中。 XAMPP 目前与 eAccelerator 0.9.5.3 捆绑在一起,但默认情况下它是禁用的。所以这可能不是你的问题。

    根据ChangeLog,XAMPP 已经很长时间没有使用 PHP 5.2.3 和 Apache 2.2.4 了,这也是 eAccelerator 漏洞出现的时间。我建议检查您的 eAccelerator 版本并可能升级 XAMPP。

    【讨论】:

    • 已修复,即使当前的 XAMPP 也有不兼容的 eAccelerator.dll。我用“eAccelerator0953_5.2.8.dll”替换,一切正常。
    【解决方案2】:

    我得到“成功”作为运行脚本的输出,无论是在命令行上独立运行,还是通过网络服务器上的 apache 以及 XAMPPLITE 运行。 不知道你的设置有什么不同

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多