【发布时间】:2011-06-06 02:09:00
【问题描述】:
又名,寻求通用错误处理程序(ΟΚ 用于商业用途)
我怀疑我是最好的 PHP 程序员,所以,虽然我有自己的针对 set_error_handler() 的通用错误处理程序,但我想知道其他人在做什么以及是否有“最好的”(对不起,如果这听起来很主观 - 我只是想引出一般方法(但即使是“最佳实践”标签也已从 SO 中删除)。
客观地说,这是我认为需要的。如果我错了,请纠正我,如果你同意,请指出一些好的代码。
我想捕获尽可能多的信息 - 不知道错误是什么。
因此,例如,转储调用堆栈是有意义的。
和
$_GET、$_POST和$_SESSION。我希望调用堆栈和全局变量打印得漂亮
我想要一些“纯文本”布局,而不是 CSS 和花哨的 JS 来展开/折叠信息。我的用户可能不得不剪切/粘贴到电子邮件中,甚至打印出来和传真。
我希望能够添加我自己设计的标题,最好作为参数,但如果需要,我可以破解代码。标头可能包含程序版本、时间戳等(在我的例子中,我有一个审计跟踪,所以我可以包含导致崩溃的用户最后几个操作)。
有些用户可能允许我的代码自动通过电子邮件发送报告,有些用户可能希望先预览并通过电子邮件发送,有些用户可能不希望我发送电子邮件。
【问题讨论】:
-
史诗般的问题标题,+1。
-
不管是什么问题,我都喜欢那个闪亮的标题。
-
从 PHP 7 开始,旧式 PHP 错误将被视为异常,允许
try ... catch等。这应该会使 PHP 错误处理好上亿倍(并有望消除讨厌的@操作员一劳永逸)。
标签: php error-handling