gpt4 book ai didi

php - 抛出异常和返回类型

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:58:35 24 4
gpt4 key购买 nike

当抛出一个新的异常时,如果不需要抛出异常,最好简单地返回 true。或者最好返回 false 而不是抛出异常。我正在使用 php。

最佳答案

这完全取决于您在做什么。就个人而言,我一直使用它们,这样我就不必检查返回值(一个愚蠢但说明性的例子):

function ArrayToObject(array $array) {
$obj = new StdClass();
foreach ($array as $key => $value) {
if (!is_string($key)) {
throw new Exception('Expects only string keys in the array');
}
$obj->$key = $value;
}
return $obj;
}

这样,我可以做到:

$array = array('foo' => 'bar');
try {
echo ArrayToObject($array)->foo; //Prints "bar"
} catch (Exception $e) {
//Handle error here
}

它让您不必担心错误检查结果。您可以直接在 catch block 中处理错误。

所以不,不要根据异常改变你要返回的内容......让异常为你处理错误和改变的工作流程......

一个更真实的例子(伪代码):

try {
open database connection;
send query to database;
operate on results;
} catch (DatabaseConnectionException $e) {
handle failed connection here;
} catch (DatabaseQueryException $e) {
handle failed query here;
} catch (Exception $e) {
handle any other errors here;
}

显然,这是假设您的数据库函数/方法抛出这些异常...

关于php - 抛出异常和返回类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3256495/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com