【发布时间】:2013-12-13 12:09:17
【问题描述】:
我在我的 PhP 程序中使用 set_exception_handler() 设置了一个异常处理程序,它实际上工作正常。从某种意义上说,它确实捕获了我没有处理的异常,并且按照处理程序中的规定,记录了异常详细信息。那么,我为什么要抱怨呢?问题是除了在异常处理程序中使用文件名和行号记录正确的详细信息外,它还在浏览器中显示以下消息:
Fatal error: Exception thrown without a stack frame in Unknown on line 0
我的信念是,这个特定的异常消息可能来自 stdout 流,而处理程序捕获的异常来自 stderr 流。另一种可能性是上述消息是由错误处理程序模块发出的,而不是由 PhP 的异常处理程序模块发出的。无论如何,我希望所有异常消息都发送给一个处理程序。我还有一个错误处理程序设置如下:
set_error_handler('SS_error_handler', E_ALL);
如何处理这种情况?致命错误消息是否来自 PhP 的错误消息报告模块?如果是这样,异常处理程序和错误处理程序之间是否存在重叠,因为它们都被某些错误/异常触发?如果相关,我想补充一点,这个特定的异常是 MySQL PDO 语句引发的。
任何解释将不胜感激。
【问题讨论】:
标签: php mysql exception handler