PHP的trigger_error()是否已为PHP5中更好的东西而被弃用?

ale*_*lex 4 php error-handling

当我想触发来自PHP4背景的PHP中的错误时,我曾经使用过它。注意我有自己的能力set_error_handler()来处理这些错误。

if ($error) {
    trigger_error('Sorry, error has occured');
}
Run Code Online (Sandbox Code Playgroud)

我不记得在哪里,但是前段时间有人告诉我我应该“使用例外”。由于我要分解许多旧代码,因此我认为现在是时候就我的错误处理实现获得一些好的建议了。

既然我正在使用PHP5(并且比编写旧代码时要聪明一些),那是我trigger_error()做事的一种旧方法,如果这样,处理PHP5中错误的最佳方法是什么?

And*_*are 5

是的,您可能想开始研究PHP 5异常模型。请记住,尽管有些新事物并不意味着您必须采用它。仅采用您需要且在您的域中有意义的那些功能。

话虽这么说,我认为例外是一个很好的概念,即使您决定不采用例外,体验也会变得更好。

我建议您阅读PHP:例外-手册

PHP 5具有与其他编程语言相似的异常模型。可以在PHP中引发和捕获异常(“捕获”)。可以将代码括在try块中,以帮助捕获潜在的异常。每次尝试都必须至少有一个相应的捕获块。多个捕获块可用于捕获不同类别的肽。在按顺序定义的最后一个catch块之后,将继续正常执行(当try块内没有引发异常,或者不存在与所引发的异常的类匹配的catch时)。可以在catch块中引发(或重新抛出)异常。

我也鼓励您阅读什么是例外?(请注意,这是Java教程,但是概念是通用的)

当方法内发生错误时,该方法将创建一个对象并将其交给运行时系统。该对象称为异常对象,包含有关错误的信息,包括错误的类型和发生错误时程序的状态。创建异常对象并将其传递给运行时系统称为引发异常。

编辑:为了实现全局异常处理程序(基本上是为了建立将处理以前未处理的异常的默认异常处理程序),您将需要我们使用该set_exception_handler函数。