PHP-如果条件为',是否保证此代码停止;我没见过?

PHP-如果条件为',是否保证此代码停止;我没见过?,php,exception,Php,Exception,我只是在学习异常和错误报告,我试图理解try/catch的行为,也许还有其他我还不知道的方法。我有这样的代码: function nameless(....) { if(!$condition) { throw new Exception('Condition not met'); } [someCode ...] return $result; } 我想确保someCode仅在满足条件时执行。这样的结构能保证它的安全吗 在讨论将其余代码放入el

我只是在学习异常和错误报告,我试图理解try/catch的行为,也许还有其他我还不知道的方法。我有这样的代码:

function nameless(....) {
    if(!$condition) {
        throw new Exception('Condition not met');
    }
    [someCode ...]
    return $result;
}
我想确保
someCode
仅在满足条件时执行。这样的结构能保证它的安全吗

在讨论将其余代码放入
else
块或其他方法之前,我想知道是否有某种方法可以执行
nameless()
,在抛出异常后继续执行


一旦我知道了这一点,我想知道是否有更好/更糟糕的方法做事情,这个例子是否很差,或者它是一百种同样有效的方法之一。谢谢。

是的,它会停下来。行为定义如下:

当抛出异常时,语句后面的代码将不会执行,PHP将尝试查找第一个匹配的catch块。如果未捕获异常,PHP致命错误将发出“未捕获异常…”消息,除非已使用set_exception_handler()定义了处理程序

根据异常的定义和目的,函数不应在异常发生后继续,并且不应寻找强制发生异常的方法


如果有一些代码即使在抛出异常后也必须执行,则不应将其包含在函数中,而应将函数包含在
try/catch
中,并将必要的代码放在
finally
块中。

是,异常将在抛出点停止该函数的执行。查看关于“是否有更好/更坏的方法”问题的尝试/总结笔记,答案必须是:这完全取决于情况。是的,在这一点上,问题变得“主要基于观点”。在提问之前,您是否确实测试了代码:)?有些人喜欢在任何情况下到处抛出异常,当一些人从不使用代码时,使代码达到80%的try/catch。