Validating input
Input validation is a necessary but very tedious task. How many times did you have to write code like the following?
fun setCapacity(cap: Int) { if (cap < 0) { throw IllegalArgumentException() } ... }
Instead, you can check arguments with the require()
function:
fun setCapacity(cap: Int) { require(cap > 0) }
This makes the code a lot more fluent. You can use require()
to check for nulls:
fun printNameLength(p: Profile) { require(p.firstName != null) }
But there's also requireNotNull()
for that:
fun printNameLength(p: Profile) { requireNotNull(p.firstName) }
Use check()
to validate the state of your object. This is useful when you are providing an object that the user may not have set up correctly:
class HttpClient { ...