2013-03-05 60 views
1

当我故意从内嵌入PHP代码PHP过滤模块扔在一个PHP错误,Drupal的显示消息The website encountered an unexpected error. Please try again later.错误使用PHP过滤模块

我们喜欢发送带有意想不到的编程错误,用户错误处理页面,以便它们不会在没有我们收到通知的情况下登录到死的错误页面,所以我试图找出如何在Drupal中拦截此页面。我试着在Drupal中搜索这个错误字符串输出的地方,没有运气。

Drupal究竟如何处理嵌入式php代码中发生的错误,或者更直接:如何使它重定向到另一个页面或以另一种方式捕获错误?

感谢

回答

0

的特定错误之际,Drupal的显式设置PHP异常处理程序自定义函数(在_drupal_bootstrap_configuration()完成)的结果。

异常处理程序本身是_drupal_exception_handler(),它调用_drupal_log_error(),这就是生成错误页面的地方。

我从来没有尝试过,但我估计你会放弃执行hook_boot()并使用set_exception_handler()提供自己的核心Drupal函数的实现,以错误页面为主题。

这似乎有点漫长,但因为_drupal_error_log()没有调用任何钩子(它可能会发生得太早)因为我看不到任何其他的方式来做到这一点,而无需编辑核心文件。

+0

这帮助我找到错误信息的产生地点。谢谢。 – georgedyer 2013-03-07 15:31:18