虽然这个问题很笼统,但我会提到引发查询的场景。
场景:
我对分析大量字符串(尤其是数字字符串)感兴趣。因此,我的第一项工作是过滤掉那些甚至包含除数字以外的单个字符的那些。
一个简单的方法是(在 Java 中):
for (String val : stringArray){
try{
int num = Integer.parseInt(val);
doSomething(num);
}
catch(NumberFormatException nfe){}
}
我必须提到的另一点是,数组中只有大约 5% 的字符串是纯数字的。因此,简而言之,将涉及很多捕捉。
我想知道的是,这在设计方面是否是一种有效的方式,还是我应该考虑其他方式来做同样的事情?
基于答案的结论:异常确实很昂贵,将它们用作控制语句的一种形式并不是一个很好的设计实践。因此,应该尽可能地尝试寻找替代方案,如果仍然有例外似乎更清晰/更容易,则应该将其记录好。