SORU
7 AĞUSTOS 2013, ÇARŞAMBA


Özel durum yakalandı Java değil mi?

Küçük bir ben varteoriktry-catch yapılar ile sorun.

Java ile ilgili pratik bir sınav daha dün aldım ve örnek aşağıdaki anlamıyorum:

try {
    try {
        System.out.print("A");
        throw new Exception("1");
    } catch (Exception e) {
        System.out.print("B");
        throw new Exception("2");
    } finally {
        System.out.print("C");
        throw new Exception("3");
    }
} catch (Exception e) {
    System.out.print(e.getMessage());
}

Soru "çıkışı nasıl olacak?"

AB2C3, AMA sürpriz sürpriz olacağını adım gibi emindim, bu doğru değil.

Doğru cevap ABC3 (test edilmiş ve gerçekten öyle).

Benim sorum, bu Durum yaptığım yerde("2")?

CEVAP
7 AĞUSTOS 2013, ÇARŞAMBA


Java Language Specification 14.20.2.:

Eğer try bloğu yürütme aniden başka bir neden Ar tamamlandıktan sonra finally bloğu çalıştırılır, ve sonra bir seçim var:

  • Eğer sonunda bloğu normalde tamamlarsa, o zaman deneyin deyimi R. için neden aniden tamamlar

  • Eğer sonunda blok nedeni daha çabuk tamamlanırsa, o zaman deneyin deyimi aniden nedenle tamamlar S (R ve neden atılır).

Bir istisna atar catch bloğu vardır:

try {
    // ...
} catch (Exception e) {
    throw new Exception("2");
}

ama aynı zamanda da bir istisna atar sonunda bir blok var:

} finally {
    throw new Exception("3");
}

Exception("2") atılacak ve Exception("3") aktarılacaktır.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Barnacules Nerdgasm

    Barnacules N

    20 Temmuz 2006
  • The Dubstep FX

    The Dubstep

    5 Mart 2011
  • Troy Hunt

    Troy Hunt

    29 EYLÜL 2011