tgoop.com/kotlin_lib/582
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