【发布时间】:2012-11-02 13:01:42
【问题描述】:
我开始使用“真实”异常而不是自定义错误函数。
我认为我不需要每次都使用 try/catch 块,只是抛出异常也没关系,但现在由于这些未捕获的异常,我得到了一个致命错误。
当我设置 error_reporting(0) 时一切正常,但我想完全避免错误。有谁知道 try/catch 的替代方法或如何在不发生致命错误的情况下抛出异常?
提前致谢!
【问题讨论】:
-
呃……不。异常的全部意义在于,如果没有被捕获,它总是致命的。你不应该到处都需要
try/catch块。您应该使用set_exception_handler设置“最后机会”异常处理程序 -
这是一个 Web 或命令行应用程序吗?您应该在可以有意义地处理异常的地方捕获异常。在某些情况下,它位于应用程序的入口点中,但很多时候它更深于您想要采取一些行动作为响应的地方。
-
@David:它是一个网络应用程序。当然,我会尝试捕捉它们,但例如:在我的 DB-Class 中,我有一个名为 _handle_error() 的方法,它处理错误并记录它们。调用 _handle_error() 时,我无法捕获方法本身引发的异常。我希望它可以在不发布代码的情况下理解。 :-)
标签: php exception exception-handling try-catch