ฉันมีห่วงที่มีลักษณะเช่นนี้:
for (int i = 0; i < max; i++) {
    String myString = ...;
    float myNum = Float.parseFloat(myString);
    myFloats[i] = myNum;
}
นี่คือเนื้อหาหลักของวิธีการที่มีจุดประสงค์เพียงอย่างเดียวคือการส่งคืนแถวลอย ฉันต้องการให้วิธีนี้คืน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;
}
มีเหตุผลประสิทธิภาพหรืออย่างอื่นที่จะชอบอย่างใดอย่างหนึ่งมากกว่าอื่น ๆ ?
แก้ไข:ฉันทามติดูเหมือนว่าจะสะอาดกว่าที่จะใส่วนเข้าไปในลอง / จับอาจเป็นไปได้ในวิธีการของตัวเอง อย่างไรก็ตามยังมีข้อถกเถียงที่เร็ว ใครบางคนสามารถทดสอบสิ่งนี้และกลับมาพร้อมกับคำตอบแบบรวม?