gpt4 book ai didi

C# - 围绕抛出自定义异常或处理案例构建逻辑更好吗?

转载 作者:太空宇宙 更新时间:2023-11-03 21:45:43 27 4
gpt4 key购买 nike

如果我想构建我的业务逻辑,通过抛出自定义异常或通过添加特定的“If”条件来避免特定情况来处理逻辑是否更好?

例如(愚蠢但很简单的例子):

var success = true;
try{

if(value == 5){
throw new CustomException("Invalid Value!");
}

DoStuffIfValueIsValid();

}catch(CustomException e){
success = false;
}

return success;

对比

var success = true;    

if(value == 5){
success = false;
} else {
DoStuffIfValueIsValid();
}
return success;

我知道这个例子看起来很愚蠢,但是在逻辑更多的大规模代码中,我是否应该使用更多的条件来避免使用多个 try catch?

提前致谢!

最佳答案

简单地说,我建议不要使用异常来控制程序的流程。当没有其他选项可以解决问题时,您应该引发异常,而不是跳转到程序的特定点只是为了返回一个结果或另一个结果。异常(exception)是为“特殊”或意外情况保留的。这样做有点像编写 goto。除此之外,它们是昂贵的对象,可能会对性能产生重大影响。请参阅 MSDN 上的这篇文章“Avoid using exceptions for control flow” ' 在 NET Framework 性能规则书中。

关于C# - 围绕抛出自定义异常或处理案例构建逻辑更好吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17097250/

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