Junior — Middle
Оё дигар захираҳо автоматӣ баста мешаванд, агар дар вақти пӯшидани яке аз компонентҳо дар блоки try-with-resources истисно рух диҳад?
sobes.tech AI
Ҷавоб аз AI
Дар сохтори try-with-resources дар Java, ҳама захираҳое, ки дар зерин эълон шудаанд, автоматӣ дар тартиби муқобил ба тартиби эълон карданашон баста мешаванд, ҳатто агар дар вақти баста шудан истисно пайдо шавад.
Агар дар вақти баста шудани як захира истисно пайдо шавад, JVM кӯшиш мекунад, ки дигар захираҳоро низ бандад. Истисноҳое, ки пас аз аввал дар вақти баста шудани захираҳо пайдо мешаванд, ҳамчун suppressed exceptions ба истиснои аввал илова карда мешаванд.
Масалан:
try (Resource res1 = new Resource("res1");
Resource res2 = new Resource("res2")) {
// кор бо захираҳо
}
// Вақте ки аз блок мебарем, ҳарду захира баста мешаванд,
// ҳатто агар дар вақти баста шудани res1 истисно пайдо шавад,
// res2 низ баста мешавад.
Ин кафолат медиҳад, ки ҳамаи захираҳо боэътимод озод карда шаванд ва аз ҷорӣ шудани ҷараёнҳо пешгирӣ мешавад.