gpt4 book ai didi

error-handling - 正确使用try .. catch

转载 作者:行者123 更新时间:2023-12-04 13:12:45 27 4
gpt4 key购买 nike

我应该使用这种抛出错误的方法:

if (isset($this->dbfields[$var])) {
return $this->dbfields[$var];
} else {
throw new FieldNotFoundException($var);
}

或这种风格:
try {
return $this->dbfields[$var];
} catch (Exception $e) {
throw new FieldNotFoundException($var);
}

...或其他全部?

代码的简要说明: $this->dbfields是一个数组。 isset()检查是否设置了变量,在这种情况下,检查数组元素是否存在。

最佳答案

第二个例子很糟糕。正如您所演示的那样,首先要防止该异常就很容易,因此要捕获一个异常会花费大量的开销。另外,您还假设您知道为什么会引发该异常-如果还有其他异常,例如内存不足之类的东西,即使没有,也会将其报告为“未找到字段”。

请记住,像C++和Java这样的语言中的try/catch非常昂贵,因为它们必须保存和恢复所有状态。另一方面,Python具有非常便宜的异常,它们积极地鼓励您使用try/except进行简单验证。但是即使如此,捕获所有内容并假装它是一种异常仍然很糟糕。

关于error-handling - 正确使用try .. catch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/196424/

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