我怎样才能降低这种情况的复杂性?

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
}