質問は一般的なものですが、クエリを引き起こしたシナリオについて言及します。
シナリオ:
多数の文字列(特に数値)の分析に興味があります。したがって、私の最初の仕事は、数字以外の文字を 1 つでも含むものを除外することです。
これを行う簡単な方法は (Java で):
for (String val : stringArray){
try{
int num = Integer.parseInt(val);
doSomething(num);
}
catch(NumberFormatException nfe){}
}
私が言及しなければならないもう 1 つの点は、配列内の純粋な数値の文字列は約 5% しかないということです。したがって、要するに、多くのキャッチが含まれます。
私が疑問に思っていたのは、これがデザインの観点から効率的な方法なのか、それとも同じことを行う別の方法を考えるべきなのかということでした。
回答に基づく結論:例外は確かに高価であり、それらを制御ステートメントの形式として使用することはあまり良い設計方法ではありません。したがって、可能な限り代替案を探してみてください。それでも例外がより明確/簡単に見える場合は、それを適切に文書化する必要があります。