PHP,异常处理之“定义为捕捉的异常处理程序”

set_exception_handler()函数定义了该如何处理当某个异常向上一直回溯栈道主函数入口都没有被捕捉的情况。通常,将看到与以下相似的内容:

这是内置的异常处理程序。它是有用的,但也可能暴露敏感信息,例如数据库登录标识等。在生产环境中禁止这一处理程序是有用的做法,通过使用php.ini、.htaccess或者ini_set()方法可以做到这一点。此外,如果希望了解发生的异常信息,但却仍然不希望显示那些异常信息,可以使用set_exception_handler()函数将它替换成自己的日志函数而不去显示异常信息。

要使用set_exception_handler()函数,必须声明一个接受一个参数的函数。然后,将这个函数的名称作为一个字符串传递给set_exception_handler()函数。然而,必须在调用set_exception_handler()函数之前声明这个函数,否则,将会碰到一个错误。以下代码清单演示了如何使用set_exception_handler()函数。

现在,因为已经重写了默认的异常处理程序,所以应用程序中未捕捉的异常会被记录到日志中而不会显示在屏幕上。

摘自:《PHP高级程序设计》 【加】Kevin McArthur 著  汪泳 等译

留下评论