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 {
...