PHP 忽略错误并继续处理

标签 php exception error-handling

class MyClass {

    public function __construct(){
    }

    private function makeError(){
        return sp('ABC'); // sp is undefined function
    }

    private function printMe(){
        echo "PRINT ME";
    }

    public function run(){

        try {
            $t = $this->makeError();

        }catch(Exception $e){
        }

        $this->printMe();       
    }
}

$t = new MyClass();
$t->run();

如果运行上述代码,则会发生错误,因为 sp() 未定义函数。

但我想忽略错误并运行 printMe 方法。

我应该怎么做?

谢谢!

最佳答案

你可以使用 function_exist()

class MyClass {

    public function __construct(){
    }

    private function makeError(){
        if(!function_exist('sp')){
             throw new Exception();
        }else{
             return sp('ABC'); // sp is undefined function
        }
    }

    private function printMe(){
        echo "PRINT ME";
    }

    public function run(){

        try {
            $t = $this->makeError();

        }catch(Exception $e){
        }

        $this->printMe();       
    }
}

你无法捕捉到它不存在的事实,因为这是一个 fatal error

关于PHP 忽略错误并继续处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8493051/

相关文章:

c# - 在 C# 中处理异常时的良好做法

c - 如何在C语言中编写完美的错误处理?

php - 如何删除php中的重复数据?

php - mysql_query ("START TRANSACTION")- 超过锁定等待超时;尝试在 Codeigniter Mysql 中重新启动事务

python - 一种方法允许引发多种类型的异常还是只引发一种更好?

c++ - 如何将所有抛出变成中止条件以进行调试?

c - 避免/减轻每次函数调用后返回值检查的痛苦的方法?

swift - 如何解决编码错误: “Use of Unresolved Identifier SafariVC” . The error is next to “SafariVC.delegate = self”

php - 需要从不存在某些条件的 MySQL 表中获取值

php - 它是查看还是加入我需要的这个 mysql 练习