致命的解析错误我真的无法采取任何措施吗?

时间:2019-07-06 15:02:58

标签: php .htaccess error-handling

初学者问题:我已经花了大约30个小时来尝试找出错误处理程序,这对我来说不是一个好程序员,这很重要。我有95%的信心对致命致命错误无能为力,但我仍然有5%的希望。

我的错误处理程序在遇到问题时可以很好地发送电子邮件和文本消息,但是随后出现一个空白页面,上面只是:

Fatal error: Cannot use try without catch or finally 
in /directory/ etc ...filename.php on line 999

(我不小心删除了catch块。)问题:某处提到了htaccess 500页。

我不明白我在阅读时所描述的内容。到目前为止,我对htaccess几乎一无所获。

有没有办法使某种静态页面跳闸? (我有95%的信心我什么也做不了,但是我被困住了,但仍然有5%的希望,这对我来说真的很重要。)我仍然在运行PHP 5.6,但不想升级到7。与我 可以捕捉到的警告,通知,不推荐使用的东西相比,捕获这些错误对我而言更为重要。

更新

我看到了这个问题,并使用了其中的一些技术,但它已经11年了,巨大,部分过时,并且不能主要解决我现在要解决的问题。

处理“致命错误”(例如调用不存在的函数)没有问题。我的问题是解析脚本时发现的错误,并且这些错误是“不可恢复的”。在我的情况下,当catch存在时缺少try

另一个答案是部分回答此问题,但并非以我似乎可以使用的方式回答。我认为也许有一种方法可以通过停止错误显示来迫使500错误而不正确地显示,我将在明天/明天进行调查。我将不胜感激24小时检查。我很高兴能有更多知识渊博的人提出更好的问题/答案,有用的信息可以从该线索中剔除,但是坦率地说,经过11年,这真是一团糟。

答案-差不多

display_errors切换为关闭,您将遇到500错误。可悲的是,我无法进行.htaccess重定向才能正常工作(404正常)。如果您对.htaccess感到满意,希望您会感到高兴。

在某些讨论中,有人说约有500个错误是“核心”错误,甚至.htaccess都无法恢复。我的日志非常稀疏,如果出现catch错误,try就是这种情况,我看不到任何有用的指示。

(非常感谢@Dharman(如果可以的话))。 PS将在/如果我结束时将其整理。)

1 个答案:

答案 0 :(得分:0)

我认为PHP不能执行任何解析错误(或在编译阶段出现其他错误)的操作,但是您应该能够配置Web服务器以显示您选择的错误页面。

您没有说您正在使用什么Web服务器,但是例如对于Apache,这些是Custom Error Response设置。您的错误将是HTTP 500错误。