0

PHP 中的正常抛出和未捕获的异常将产生类似于以下的输出:

致命错误:在 /home/codemonkey/foo/bar/File.php:143 中带有消息“权限不足或其他内容”的未捕获异常“异常”
堆栈跟踪:
#0 /home/codemonkey/dev/foo/bar/SomeOtherFile.php(85): foo\bar\File::fromUpload(Array)
#1 /home/codemonkey/dev/foo/bar/OmniDataFileImport.php(35): foo\bar\OmniDataFileImport->performFileImportLogic()
#2 [内部函数]: foo\bar\OmniDataFileImport->post(Object(Request), false)
#3 /home/codemonkey/dev/foo/vendor/tonic/lib/tonic.php(654): call_user_func_array(Array, Array)
#4 /home/codemonkey/dev/foo/dispatch.php(22): Resource->exec(Object(Request))
#5 {主要}
  在第 143 行抛出 /home/codemonkey/dev/foo/broadnet/files/File.php

消息和堆栈跟踪很酷,但我真的想要更多信息。出于这个原因,我想使用更多信息来扩展异常,例如局部变量及其值。问题是 PHP 可能仍会输出相同的上述信息,但会显示文本“未捕获的异常 'MyException'”。

我可以覆盖 PHP 显示未捕获异常的方式吗?我记得阅读过有关 PHP 中的一个函数,您可以将其设置为备份以捕获所有未捕获的异常。也许我可以使用该功能来格式化我自己的消息并终止该过程。

感谢您提供有关该主题的所有有用信息

4

1 回答 1

1

您正在寻找set_exception_handler().

但是,您无法检索局部变量等 - PHP 的错误处理/调试非常差,除非您使用不适合生产系统的调试扩展。

于 2012-04-18T11:28:34.607 回答