Bu soruya rastladım ve verenin verdiği sonucu anlayamıyorum.Dize sonunda döndürülür ve bloklamayı deneyin
programdır:
public static String method(){
String s = new String();
try
{
s = "return value from try block";
return s;
}
catch (Exception e)
{
s = s + "return value from catch block";
return s;
}
finally
{
s = s + "return value from finally block";
}
}
çıktısı: try'ın
den
dönüş değeri Şimdi, bunu ve
return s
deyimi des
değerini ayıklanacaktry
bloğureturn value from try block
,return value from catch block
sonra oldureturned from finally block
.Hareketsiz çıktısı: try'ın
den
dönüş değeri herhangi birinin bu davranışı açıklar mısınız?
Buna bir https: // stackoverflow bakın.com/questions/65035/does-finally-in-java ile çalışın – mmuzahid
Burada daha fazla açıklama bulacaksınız [Try-catch-nihayet-getiri açıklama - Stack Overflow] (https://stackoverflow.com/questions/15225819/try-catch-finally-return-clarification) –
Yanıt, Oracle belgelerinden geliyor: "Son olarak bloğu, try bloğu çıkarıldığında her zaman çalışır. Bu, beklenmedik bir istisna meydana gelse bile son bloğun yürütülmesini sağlar. " bu referansı kontrol edin: https://docs.oracle.com/javase/tutorial/essential/exceptions/finally.html – Oghli