次のようなループがあります。
for (int i = 0; i < max; i++) {
String myString = ...;
float myNum = Float.parseFloat(myString);
myFloats[i] = myNum;
}
これは、float の配列を返すことだけを目的とするメソッドの主な内容です。null
エラーが発生した場合にこのメソッドを返したいので、次のようにループをtry...catch
ブロック内に配置します。
try {
for (int i = 0; i < max; i++) {
String myString = ...;
float myNum = Float.parseFloat(myString);
myFloats[i] = myNum;
}
} catch (NumberFormatException ex) {
return null;
}
try...catch
しかし、次のようにブロックをループ内に配置することも考えました。
for (int i = 0; i < max; i++) {
String myString = ...;
try {
float myNum = Float.parseFloat(myString);
} catch (NumberFormatException ex) {
return null;
}
myFloats[i] = myNum;
}
どちらか一方を優先する理由、パフォーマンス、またはその他の理由はありますか?
編集:コンセンサスは、ループを try/catch 内、おそらく独自のメソッド内に配置する方がクリーンであるということです。ただし、どちらが速いかについてはまだ議論があります。誰かがこれをテストして、統一された答えを返すことができますか?