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

  • CaliforniaMetin

    CaliforniaMe

    3 ŞUBAT 2013
  • MrOctopi

    MrOctopi

    6 Aralık 2010
  • wwjoshdu

    wwjoshdu

    18 ŞUBAT 2011