KOTLIN_LIB Telegram 582
Не используй use в Kotlin

Многие считают, что use — это идеальный способ управления ресурсами в Kotlin, так как он автоматически закрывает ресурс после использования. Однако стоит быть осторожнее. Когда в блоке use выбрасывается исключение, ресурс всё равно закроется, но если при закрытии произойдёт ещё одно исключение, то оно может затереть исходное, и ты потеряешь важную информацию о причине ошибки.

В Java 7 для этого появилась конструкция try-with-resources, которая аккуратно складывает все исключения, а в Kotlin use реализован иначе. Например, если внутри блока работы с файлом что-то пошло не так, а потом и при закрытии возникла ошибка — ты увидишь только вторую, а первая просто исчезнет.

Поэтому лучше явно закрывать ресурсы в finally, либо использовать Java-подход, если тебе важно не терять исключения.

https://medium.com/@wn8yura/dont-use-use-in-kotlin-1005c9b6b9d4

✍️ @kotlin_lib
👍6🤣2



tgoop.com/kotlin_lib/582
Create:
Last Update:

Не используй use в Kotlin

Многие считают, что use — это идеальный способ управления ресурсами в Kotlin, так как он автоматически закрывает ресурс после использования. Однако стоит быть осторожнее. Когда в блоке use выбрасывается исключение, ресурс всё равно закроется, но если при закрытии произойдёт ещё одно исключение, то оно может затереть исходное, и ты потеряешь важную информацию о причине ошибки.

В Java 7 для этого появилась конструкция try-with-resources, которая аккуратно складывает все исключения, а в Kotlin use реализован иначе. Например, если внутри блока работы с файлом что-то пошло не так, а потом и при закрытии возникла ошибка — ты увидишь только вторую, а первая просто исчезнет.

Поэтому лучше явно закрывать ресурсы в finally, либо использовать Java-подход, если тебе важно не терять исключения.

https://medium.com/@wn8yura/dont-use-use-in-kotlin-1005c9b6b9d4

✍️ @kotlin_lib

BY Kotlin




Share with your friend now:
tgoop.com/kotlin_lib/582

View MORE
Open in Telegram


Telegram News

Date: |

How to Create a Private or Public Channel on Telegram? A Hong Kong protester with a petrol bomb. File photo: Dylan Hollingsworth/HKFP. Ng Man-ho, a 27-year-old computer technician, was convicted last month of seven counts of incitement charges after he made use of the 100,000-member Chinese-language channel that he runs and manages to post "seditious messages," which had been shut down since August 2020. Members can post their voice notes of themselves screaming. Interestingly, the group doesn’t allow to post anything else which might lead to an instant ban. As of now, there are more than 330 members in the group. The Channel name and bio must be no more than 255 characters long
from us


Telegram Kotlin
FROM American