抛出异常有什么好处?

时间:2016-01-22 19:33:26

标签: php exception

foo()

上面的代码演示了PHP中{{1}}类的基本用法。抛出异常有什么好处?我的意思是,延迟问题的优点是什么,而不是立即在{{1}}内处理它?<​​/ p>

答案here无法解决此问题。

2 个答案:

答案 0 :(得分:1)

考虑这个例子:

function parseInt($string) {
    // Return the int represented by this string
    // If the string does not represent an int, throw an exception
}

现在想象一下$string == "foo"。你的功能有什么回报?它不能返回int,因为这没有任何意义。它不能返回不是int的东西,因为它肯定会破坏某些东西(考虑这个调用$score = parseInt("foo") + parseInt("42"))。

这就是Exception有用的地方。它以可预测的方式打破,并避免让你处于未知状态。

答案 1 :(得分:0)

当您编写{{ date('F d, Y', strtotime($list->created_at)) }} 时,您不一定知道将要调用它的开发人员(可能只是Future You)已经考虑过所有事情。因此,例如,如果他们忘记验证用户输入并尝试调用function foo(),那么您真棒的除法函数会抛出某种myAwesomeDivisionFunction(3,0)(可能是Exception)。这将停止那里的代码,开发人员将被迫修复它。

虽然您可以DivideByZeroException extends RangeException,但接下来会采取什么合乎逻辑的步骤?没有一个。你不能再承担任何责任了,所以你抛出了异常。