include::../jvm-description.adoc[]


== Noncompliant Code Example

----
fun doSomething(file: File, lock: Lock) {
    file.delete() // Noncompliant
    // ...
    lock.tryLock() // Noncompliant
}
----

== Compliant Solution

----
fun doSomething(file: File, lock: Lock) {
    if (!lock.tryLock()) {
        // lock failed; take appropriate action
    }
    if (!file.delete()) {
        // file delete failed; take appropriate action
    }
}
----

== See

Although these resources talk about Java, the underlying information concerning the JVM is just as relevant for Kotlin.

* https://wiki.sei.cmu.edu/confluence/x/xzdGBQ[CERT, EXP00-J.] - Do not ignore values returned by methods
* https://wiki.sei.cmu.edu/confluence/x/TTZGBQ[CERT, FIO02-J.] - Detect and handle file-related errors
* https://cwe.mitre.org/data/definitions/754.html[MITRE, CWE-754] - Improper Check for Unusual Exceptional Conditions

ifdef::env-github,rspecator-view[]

'''
== Implementation Specification
(visible only on this page)

include::../message.adoc[]

'''
== Comments And Links
(visible only on this page)

include::../comments-and-links.adoc[]
endif::env-github,rspecator-view[]
