【问题标题】:Trigger fatal error in PHP 7 (non-exception)在 PHP 7 中触发致命错误(非异常)
【发布时间】:2016-09-19 15:52:23
【问题描述】:

我需要能够在 PHP 7 中触发一个不作为异常抛出的致命错误。

根据 PHP 文档,大部分致命错误已转换为异常。但是,我找不到任何关于哪些文档已转换和未转换的文档。

我的问题:我可以在 PHP 中做些什么来触发尚未转换为异常的致命错误之一?

原因:我正在为基于 API 的应用程序开发通用错误处理程序。我需要一个测试用例来证明它会像我说的那样工作。

【问题讨论】:

  • 抱歉,您的问题没有得到解决 - 您在 PHP 中无法捕获致命错误。如果您触发致命错误,您的脚本将停止执行,仅此而已。
  • 如果你不能,我也需要能够证明这一点......虽然我一直在看的文档说你可以。
  • 此外,您绝对可以捕获作为异常抛出的那些。我已经可以证明了。
  • try { goto b; } catch(Exception $e) { var_dump($e); } - 是的,您可以捕获异常,但不会出现致命错误。
  • 我来这里是为了找同样的东西。我们使用输出缓冲处理致命错误,在 PHP Triggering_E_ERROR_for_testing_purposes() 来测试这些错误。现在这会触发一个异常,因此最好找到一个触发真正的E_ERROR 错误的示例。

标签: php api error-handling xampp php-7


【解决方案1】:

您可以通过多种方式触发致命事件,调用未定义函数就是其中一种方式,而且非常简单,例如

<?php

foo();
<br />
<b>Fatal error</b>:  Uncaught Error: Call to undefined function foo() in [...][...]:4
Stack trace:
#0 {main}
  thrown in <b>[...][...]</b> on line <b>4</b><br />

【讨论】:

    猜你喜欢
    • 2013-10-10
    • 2013-03-31
    • 2017-04-30
    • 2013-07-07
    • 2012-05-16
    • 1970-01-01
    • 2016-03-12
    • 1970-01-01
    相关资源
    最近更新 更多