【问题标题】:php throw exception stop executionphp抛出异常停止执行
【发布时间】:2014-06-18 15:12:25
【问题描述】:

我有这个代码:

function divide($a,$b){
    try{
        if($b==0){
            throw new Exception("second variable can not be 0");
        }
        return $a/$b;
    }
    catch(Exception $e){
        echo $e->getMessage();
    }
}

echo divide(20,0);
echo "done";

第二个参数为0时抛出异常。如何阻止done打印?

【问题讨论】:

  • 不要捕获异常,或者让捕获块死亡/退出。由于您发现了它,PHP 可以假定错误已得到处理,并将继续处理。由于您没有对错误做任何事情,因此您基本上得到了与 Visual Basic 的“下一个错误恢复”的 PHP 等效项。

标签: php exception


【解决方案1】:

不要在 divide() 中捕获您的异常并稍后再捕获:

function divide($a,$b){
    if($b==0){
        throw new Exception("second variable can not be 0");
    }
    return $a/$b;
}

try {
    echo divide(20,0);
    echo "done";
} catch(Exception $e){
    echo $e->getMessage();
}

【讨论】:

    猜你喜欢
    • 2012-03-19
    • 2011-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-19
    • 2011-10-16
    相关资源
    最近更新 更多