gpt4 book ai didi

c# - 框架代码 : Fail silently or throw exceptions

转载 作者:行者123 更新时间:2023-11-30 20:22:36 25 4
gpt4 key购买 nike

假设我有一个存在于库/框架中的方法,我想知道这些方法是应该抛出异常还是静默失败;例如:

void PerformAction(Item item)
{
// throws NullReferenceException if item is null
item.DoThis();
}

void PerformAction(Item item)
{
//fails silently
if(item != null)
{
item.DoThis();
}
}

哪种解决方案更好 - 或者这是一个有点主观的问题?

最佳答案

正如其他人所说,这可能是主观的,也可能取决于上下文和情况。不过,作为一般规则,我认为 throw 是迄今为止更可取的选择。


我喜欢这个简单的类比;尽管它可能很天真,但它提出了一个明确而有效的观点:

老板:嘿,乔,你能帮我一个忙,跑到会计处,把这些重要的文件交给我吗?
Joe: 当然,没问题。

Joe 去了会计部门,但发现门锁着,大家都出去吃午饭了

可能的后续行动 #1:

Joe 回到他的老板那里: 抱歉,办公室关门了。如果您需要,我可以稍后再试,或者您有其他选择来交付文件吗?

可能的后续行动 #2:

Joe 意识到他无法完成任务,所以他只是将文档放入垃圾收集器.. 嗯.. 垃圾容器中,然后收工。

如果你是老板,你更喜欢哪个选项?

关于c# - 框架代码 : Fail silently or throw exceptions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31178577/

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