efemoney
finally
val token = acquireLock(state.entityId) ?: return finish() var failed = false try { doLockBasedOperation() } catch (e: Exception) { failed = true throw e } finally { withContext(NonCancellable) { releaseLock(state.entityId, token, failed) } }
catch
Sam
Daniel Pitts
val token = acquireLock(state.entityId) ?: return finish() var success = false try { doLockBasedOperation() success = true } finally { withContext(NonCancellable) { releaseLock(state.entityId, token, !success) } }
A modern programming language that makes developers happier.