Java Puzzle 28 – Indecision – in java we trust
Levent Erguder 20 January 2017 Java Puzzler
Kodu incelecek olursak decision metodunda , try blogu true finally blogu false donmektedir. Bu kod legal midir yani derleme hatasi verir mi ? Oncelikle kodumuz compile olacaktir, derleme hatasi vermez. Peki ciktimiz ne olacaktir ?
Ciktimiz false olacaktir ; bunun nedeni try blogu sonrasinda finally blogunun calismasidir.
try blogunda bir exception firlatiyoruz ,finally blogunda ise false degerini donmekteyiz.
Bu durumda ornegimizi calistirirsak ne olacak ? try blogunda bir hata meydana gelse bile finally blogu calisir ve geriye false doner. Herhangi bir hata da Console’da yer almaz.
Son olarak bir baska ornek daha inceleyelim;
Ornegi calistirdigimizda ciktimiz ne olacaktir ? Bu ornegimizde bir cikti olmaz , burada System.exit metodu ile JVM i kapatiyoruz sonrasindaki System.out.println komutu calismayacaktir ve program devam etmedigi icin finally blogu da calismayacaktir.
finally blogu normal sekilde tamamlanmalidir , finally blogunda return , throw gibi kodlar yer almamalidir ve checked exceptionlar’in finally bloguna propagate edilmesine izin verilmemelidir.
Github kaynak kodlar / Source Code ;
finally try finally