如果我想构建我的业务逻辑,通过抛出自定义异常或通过添加特定的“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/