PHP - 如何在出错时保持程序仍然运行

时间:2011-11-30 03:03:52

标签: try-catch

在示例代码中:

<?php
    for ($i = 1; $i <=20; $i++) {
        echo $i . '<br />';
        if ($i == 10) {
            $haha->hoho("hehe");
        }
    }
?>

当$ i = 10时,程序将显示此错误Call to a member function hoho() on a non-object,因为$ haha​​不是对象,程序停止运行。我希望程序处理此错误并继续运行到$ i = 20。我该怎么办?

2 个答案:

答案 0 :(得分:1)

简单回答:修复你的代码。

答案很长:

有很多方法可以做到这一点,不管你的编程模式如何,首先要使用set_error_handler()

但如果你在OOP中这样做,你应该使用magic methodswhat?),例如__call__get - 显然$haha需要是你的例子中的对象。

  

提示:在魔术方法中使用Exception是个好主意。但   你不能直接处理这个异常因为内部PHP   函数主要使用错误报告,只有现代面向对象   扩展使用例外。

答案 1 :(得分:0)

我会尝试类似的事情:

<?php
    for ($i = 1; $i <=20; $i++) {
        echo $i . '<br />';
        if ($i == 10) {
            if ($haha) $haha->hoho("hehe");
        }
    }
?>

这应该在尝试$haha

之前检查$haha->hoho("hehe");是否存在