SORU
7 EYLÜL 2008, Pazar


Java nihayet bir bloktan dönen

Son zamanlarda Olası Java nihayet bir blok içinde bir return ifadesi var olduğunu görmek beni çok şaşırttı.

İnsanlar çok kötü bir şey anlatıldığı gibi olduğunu düşünüyor gibi görünüyor 'Don't return in a finally clause'. Biraz daha derine kaşıma, ben de '* *3 pek çok kötü örnekler gösteren' nihayet engeller. akış kontrolü diğer türleri bulundu

Sorum şu ki, kimse bana bir finally return deyimi (veya diğer akış kontrolü) daha iyi / üreten bir örnek vermek daha okunabilir kod olabilir?

CEVAP
7 EYLÜL 2008, Pazar


Bu neden oldu izlemek için GERÇEKTEN zor bir zaman aşağı bir hatayı yıllar önce yaptım. Kod gibi bir şey oldu:

Object problemMethod() {
    Object rtn = null;
    try {
        rtn = somethingThatThrewAnException();
    }
    finally {
        doSomeCleanup();
        return rtn;
    }
}

Olanlar hariç başka kod atıldı. Yakalanmaktan ve somethingThatThrewAnException yöntemi içinde açmış rethrown. Ama bu durum problemMethod geçmiş bulaşan insan değildi. Bu bakarak UZUN bir zaman sonra nihayet dönüş yöntemi izlerini bulmuştu. Finally bloğunda dönüş yöntemi temel olarak yakalanan olmasa bile yayılıyor kadar deneyin bloğu olanların dışında durmak oldu.

Diğerleri dediğim gibi, yasal Java spec göre sonunda bir blok döndürmek için ise, KÖTÜ bir şeydir ve yapılmamalıdır.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • CruzerLite

    CruzerLite

    1 EKİM 2011
  • Noam Erez

    Noam Erez

    3 NİSAN 2012
  • ThePointblank

    ThePointblan

    18 Aralık 2006