短语“请求宽恕而不是许可”指的是两种编程方法之间的对比:“请求许可”和“请求许可”原谅。”
这个方法在尝试操作之前检查条件:
if can_do_operation(): perform_operation() else: handle_error_case()
但是,这种样式有局限性:
此方法尝试操作并处理任何由此产生的错误:
try: perform_operation() except Unable_to_perform: handle_error_case()
“请求宽恕”的优点:
对象属性的应用
在您的示例中,如果属性 foo.bar 不存在,则不应将其视为 foo 对象的失败。相反,这通常是一个编程错误。要处理此问题,请将 bar 初始化为 None 并使用:
if foo.bar is not None: handle_optional_part(foo.bar) else: default_handling()
这可确保 foo 缺少 bar 字段或具有有效值。
"请求宽恕而不是许可”并不是为糟糕的编码找借口。相反,它是在操作可能失败的特殊情况下优先考虑稳健性和清晰度。对于可选对象属性,用 None 默认值表示它们并使用适当的存在检查遵循此原则。
以上是请求宽恕,而不是许可:什么时候是更好的编程方法?的详细内容。更多信息请关注PHP中文网其他相关文章!