Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP中的trigger_error()是否因为PHP5中更好的东西而被弃用?_Php_Error Handling - Fatal编程技术网

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

PHP中的trigger_error()是否因为PHP5中更好的东西而被弃用?,php,error-handling,Php,Error Handling,当我想在PHP中触发来自PHP4背景的错误时,我经常使用这个。注意我有自己的set\u error\u handler()来处理这些错误 if ($error) { trigger_error('Sorry, error has occured'); } 我不记得在哪里,但不久前有人告诉我应该“使用异常”。由于我正在重新分解我的许多旧代码,我认为现在是时候就我的错误处理实现获得一些好的建议了 现在我正在使用PHP5(并且比我编写旧代码时聪明了一点),我的trigger_error()是

当我想在PHP中触发来自PHP4背景的错误时,我经常使用这个。注意我有自己的
set\u error\u handler()
来处理这些错误

if ($error) {
    trigger_error('Sorry, error has occured');
}
我不记得在哪里,但不久前有人告诉我应该“使用异常”。由于我正在重新分解我的许多旧代码,我认为现在是时候就我的错误处理实现获得一些好的建议了


现在我正在使用PHP5(并且比我编写旧代码时聪明了一点),我的
trigger_error()
是否只是一种旧的处理方式,如果是这样,处理PHP5中错误的最佳方式是什么?

是的,您可能想开始研究PHP5异常模型。记住,虽然有些东西是新的,但并不意味着你必须接受它。只采用那些你需要的,并且在你的领域中有意义的特性

话虽如此,我觉得例外情况是一个很好的概念,即使你决定不采用它们,你会更好的体验

我建议您阅读:

PHP5有一个类似的异常模型 与其他编程相比 语言。可以引发异常, 并在PHP中捕获(“捕获”)。 代码可能被包围在try块中, 为了便于捕捉 潜在的例外情况。每次尝试都必须 至少有一个相应的捕获 块可以使用多个捕捉块 用来捕捉不同种类的鱼 例外情况。正常执行(当没有 在try中引发异常 块,或当捕捉匹配 抛出的异常的类不是 当前)将在最后一次之后继续 按顺序定义的catch块。 可以抛出异常(或 重新抛出)在捕捉块内

我还鼓励您阅读(请注意,这是一个Java教程,但概念是通用的)

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


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

使用异常是一种面向对象的方法来触发和处理您自己的应用程序错误

上的PHP手册主题可能是一个很好的起点

下面是一个小例子:

function doSomething() {
    if ($error) {
        throw new Exception('Some descriptive error message.');
    }
}

try {
    doSomething();
}
catch (Exception $e) {
    die('<p class="error">' . $e->getMessage() . '</p>');
}
函数doSomething(){
如果($error){
抛出新异常(“某些描述性错误消息”);
}
}
试一试{
doSomething();
}
捕获(例外$e){
死(“

”.$e->getMessage()。

”); }
是否有一种捕获所有异常的通用方法,如set\u error\u handler()处理所有错误?还是我仍然保持着老的PHP4心态?谢谢你的回答,顺便说一句。是的,你可以做一些类似于你习惯的事情(请参阅我的编辑)。然而,我认为您可能需要阅读更多关于异常的内容,因为它们比您想象的要灵活得多。最好只处理您理解并可以从中恢复的异常,然后使用默认异常处理程序记录未处理的异常,然后终止应用程序。getMessage()是一个可以获取任何异常参数的方法吗?是的,它将获取异常的消息: