我怎样才能降低这种情况的复杂性?
How can I reduce the complexity for this case?
如何降低许多 if 的复杂性来检查相同的值,我正在尝试清理我的代码并且在这种情况下我面临非常高的复杂性!!
P.S。它不是 if...else 情况,它只是许多 ifs 抛出异常!
void function(String text){
if(text==null)
throw new exception();
if(text.isEmpty())
throw new Exception();
if(text=="test")
throw new Exception();
..... }
如果文本为 null 或为空,则不必抛出异常,您可以直接退出函数。抛出异常代价高昂。我会检查由 "OR" 分隔的这些条件,如果为 true
则退出函数
由于每个条件都做同样的事情,您可以将它们放在同一个 if 语句中:
if(test==null || text.isEmpty() || test="test" == 0)
{
throw new Exception();
}
您不能删除这些案例,因为它们是不同的。但是,由于我不知道您使用的语言,您可以使用 :"isNullOrEmpty() in C#" 简化 null 和 isempty 检查,此外,您应该对 test="test" 使用字符串比较。
除非必要,否则最好不要抛出异常。
你可以这样做:
if (string.IsNullOrEmpty(text))
{
throw new Exception();
}
或者如果您只想在 text
不为 null 或为空时执行代码,您可以这样做:
if (!string.IsNullOrEmpty(text))
{
// do something
}
如何降低许多 if 的复杂性来检查相同的值,我正在尝试清理我的代码并且在这种情况下我面临非常高的复杂性!!
P.S。它不是 if...else 情况,它只是许多 ifs 抛出异常!
void function(String text){
if(text==null)
throw new exception();
if(text.isEmpty())
throw new Exception();
if(text=="test")
throw new Exception();
..... }
如果文本为 null 或为空,则不必抛出异常,您可以直接退出函数。抛出异常代价高昂。我会检查由 "OR" 分隔的这些条件,如果为 true
则退出函数由于每个条件都做同样的事情,您可以将它们放在同一个 if 语句中:
if(test==null || text.isEmpty() || test="test" == 0)
{
throw new Exception();
}
您不能删除这些案例,因为它们是不同的。但是,由于我不知道您使用的语言,您可以使用 :"isNullOrEmpty() in C#" 简化 null 和 isempty 检查,此外,您应该对 test="test" 使用字符串比较。
除非必要,否则最好不要抛出异常。
你可以这样做:
if (string.IsNullOrEmpty(text))
{
throw new Exception();
}
或者如果您只想在 text
不为 null 或为空时执行代码,您可以这样做:
if (!string.IsNullOrEmpty(text))
{
// do something
}