覆盖PEAR错误处理程序

时间:2010-06-08 13:00:53

标签: php error-handling pear

我目前正在开发一个需要大量外部库的应用程序。我现在的工作是设置一个独特的错误处理程序来管理每个错误。

到目前为止,我发现了7种不同类型的PEAR错误:

  • PEAR_ERROR_RETURN:
  • PEAR_ERROR_EXCEPTION:
  • PEAR_ERROR_CALLBACK:
  • PEAR_ERROR_PRINT:
  • PEAR_ERROR_TRIGGER:
  • PEAR_ERROR_DIE:

我只想处理严重的错误(比如原生的E * _ERROR)。唯一的问题是我完全不了解PEAR错误的批评!这些名称与处理它们的方式有关,而不是它们的严肃性......是否有关于它的真实文档?

我想更好的解决方案是使用他们的pushErrorHandling,但我只是不明白如何使用它...如果有人知道,我会很感激...

提前致谢!

1 个答案:

答案 0 :(得分:0)

从您的问题来看,您似乎想要一个功能来处理所有警告,错误和异常。

对于E_ERROR,我认为你运气不好。这表明PHP无法从中恢复致命的运行时错误,因此您的脚本注定要失败。

除了例外,您可以执行set_exception_handler("funcName");来处理程序执行中所有未捕获的异常。但是,这应该是绝对的最后手段来处理异常。如果你愿意的话,一个安全网,用于任何滑过你的尝试/捕获的裂缝的东西。这样做的原因(以及像这样全局处理任何错误)是你无法从异常中恢复,因为set_exception_handler没有返回值并且它已经退出程序堆栈。

在您的应用程序中慷慨地使用try / catch。这可能看起来很乏味,或浪费时间,但事实是你的程序将在某些时候失败。无论你是多么优秀的程序员,这都是不可避免的。正确使用异常处理将使您的应用程序能够正常关闭,甚至可以从异常中正确恢复。