Ö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
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.
Java: kontrol vs denetlenmeyen özel du...
özel durum "ben İllegalStateExcep...
Java özel durum sınıfı tanımlamak için...
java arasındaki fark.lang.RuntimeExcep...
Eğer bir özel durum sona değil, Akka A...