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

  • humanHardDrive

    humanHardDri

    16 Mart 2011
  • L33TNoonProductions

    L33TNoonProd

    24 EYLÜL 2010
  • Madeon

    Madeon

    31 Ocak 2010