Inspectopedia Help

Convert try / finally to use() call

Reports a try-finally block with resource.close() in finally which can be converted to a resource.use() call.

use() is easier to read and less error-prone as there is no need in explicit close() call.


fun example() { val reader = File("file.txt").bufferedReader() try { reader.lineSequence().forEach(::print) } finally { reader.close() } }

After the quick-fix applied:

fun example() { File("file.txt").bufferedReader().use { reader -> reader.lineSequence().forEach(::print) } }

Inspection Details

Available in:

IntelliJ IDEA 2023.3, Qodana for JVM 2023.3


Kotlin, @snapshot@

Last modified: 13 July 2023