As I learn new components in Kotlin, I came accross requireNotNull
and checkNotNull
but the only difference I've found is that requireNotNull
can throw an IllegalArgumentException
while checkNotNull
can throw an IllegalStateException
. Is this the only reason why there are two methods, or I'm missing some under-the-hood implementation detail?
It is a semantic difference and hence it throws different exceptions. RequireNotNull is used to check input values, typically at the beginning of a method, while checkNotNull is used anywhere to check the current state.