SORU
22 HAZİRAN 2015, PAZARTESİ


Birden çok derleyici hatasız ifadeleri dönüş

Bu röportaj bir soruydu

public class Demo {

    public static void main(String[] args) {
        System.out.println(foo());
    }

    static String foo() {
        try {
            return "try ...";
        } catch (Exception e) {
            return "catch ...";
        } finally {
            return "finally ..."; //got as result
        }
    }
}

Soruma zaman, hiçbir derleme hataları neden olur. finally benim blok dönmek deyimi var, try catch Blok yerine finally dönmek zorunda. Bir uyarı olarak -Xlint seçeneği ile bu kodu veriyor derlemeye çalıştım.

warning: [finally] finally clause cannot complete normally

CEVAP
22 HAZİRAN 2015, PAZARTESİ


Java Dil Şartnamesi izniyle çünkü derleme hatası vermez. Ancak, finally blok return bir açıklama da dahil olmak üzere genellikle kötü bir fikir olduğu için uyarı mesajı veriyor.

Sizin örnekte ne şudur. try blok return deyim yürütülür. Ancak, finally blok her zaman catch blok tamamlandıktan sonra çalıştırılır yani yürütülmelidir. return deyimi orada meydana gelen return önceki ifadenin sonucu üzerine yazar ve yöntemi ikinci sonuç verir.

Benzer şekilde finally bir blok genellikle bir istisna olmamalı. Uyarı finally blok normalde, yani return olmadan veya bir özel durum üretiliyor tamamlanması gerektiğini söyledi.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Chaoticmoogle

    Chaoticmoogl

    13 ŞUBAT 2006
  • DrakeVEVO

    DrakeVEVO

    17 AĞUSTOS 2009
  • Tire Rack

    Tire Rack

    31 Mayıs 2007