SORU
26 EYLÜL 2008, Cuma


Deneyin...yakalamak veya bir döngü içinde ve dışında?

Bu gibi bir döngü var:

for (int i = 0; i < max; i  ) {
    String myString = ...;
    float myNum = Float.parseFloat(myString);
    myFloats[i] = myNum;
}

Bu yüzen bir dizi dönmek için olan bir yöntem ana içeriği. Bu yöntem, eğer bir hata varsa null iade etmek istiyorum, bu gibi try...catch bir blok içinde: döngü koydum

try {
    for (int i = 0; i < max; i  ) {
        String myString = ...;
        float myNum = Float.parseFloat(myString);
        myFloats[i] = myNum;
    }
} catch (NumberFormatException ex) {
    return null;
}

Ama sonra ben de bu döngü içinde try...catch blok koymayı bile düşündüm

for (int i = 0; i < max; i  ) {
    String myString = ...;
    try {
        float myNum = Float.parseFloat(myString);
    } catch (NumberFormatException ex) {
        return null;
    }
    myFloats[i] = myNum;
}

Herhangi bir nedenle, performans ya da başka bir tercih var mı?


Düzenleme:Uzlaşma deneyin/döngünün içinde yakalamak koymak için daha temiz olduğu için, muhtemelen kendi yöntemi içinde görünüyor. Ancak, yine de daha hızlı olduğu konusunda tartışmalar vardır. Birileri bu sınav ve birleşik bir cevap ile gelebilir mi?

CEVAP
26 EYLÜL 2008, Cuma


PERFORMANS:

Try/catch yapıları yerleştirildiği kesinlikle fark yok performans var. DAHİLİ olarak, bu yöntem çağrıldığında oluşturulan bir yapı içinde kod menzilli bir tablo olarak uygulanır. Yöntem yürütülürken, try/catch yapıları oluşur atmak sürece resmin dışında tamamen, daha sonra hata masa karşılaştırılır.

Burada bir referans: http://www.javaworld.com/javaworld/jw-01-1997/jw-01-hood.html

Tablo yarı yolda aşağı hakkında tarif edilir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Awesomesauce Network

    Awesomesauce

    4 EKİM 2012
  • Kanaal van Dj0fifty

    Kanaal van D

    28 EKİM 2011
  • LG Mobile Global

    LG Mobile Gl

    2 EYLÜL 2010