php过滤器模块的错误

时间:2013-03-05 21:58:52

标签: drupal drupal-modules

当我故意在 php过滤器模块中的嵌入式php代码中抛出php错误时,Drupal会显示消息The website encountered an unexpected error. Please try again later.

我们希望将具有意外程序员错误的用户发送到错误处理页面,这样他们就不会在没有得到通知的情况下登陆死错页面,所以我试图找出如何在Drupal中拦截它。我已经尝试在Drupal中搜索输出此错误字符串的位置,但没有运气。

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

由于

1 个答案:

答案 0 :(得分:0)

由于Drupal将PHP异常处理程序显式设置为自定义函数(在_drupal_bootstrap_configuration()中完成),因此出现了特定错误。

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

我从来没有尝试过,但我认为你可以实现hook_boot()并使用set_exception_handler()来提供自己的核心Drupal函数实现,以便以不同的方式对错误页面进行主题化。 / p>

这可能看起来有点长,但是因为_drupal_error_log()没有调用任何钩子(无论如何它可能发生得太早)我没有看到任何其他方法来做到这一点而没有编辑核心文件。