require(), check()는 Kotlin에서 주로 조건 검사를 위한 도구로 사용된다.
이 함수들을 사용하면 코드의 가독성이 높아지고 예외 처리를 단순화하여 오류를 더 쉽게 파악할 수 있다는 이점이 있다.
주로 함수의 매개변수 조건을 확인하기 위해 사용된다.
fun require(value: Boolean, lazyMessage: () -> Any): Unit
조건이 false면 IllegalArgumentException를 던진다.
함수에 전달된 인자가 특정 조건을 충족하는지 검사할 때 사용된다.
샘플 코드
fun setAge(age: Int) {
require(age > 0) { "Age must be positive" }
}
주로 프로그래머의 실수로 발생할 수 있는 불변 조건 검사를 위해 사용된다.
fun check(value: Boolean, lazyMessage: () -> Any): Unit
조건이 false일 때 IllegalStateException를 던진다.
객체 상태가 특정한 조건을 만족해야 하는 경우 사용한다.
샘플 코드
*예를 들어 객체가 초기화 되었는지 확인할 때 유용하다
val list = listOf(1, 2, 3)
check(list.isNotEmpty()) { "List should not be empty" }
객체의 상태가 예상과 다르거나 논리적으로 잘못된 경우 발생한다.
객체가 특정한 상태를 가져야 할 때, 그 상태가 충족되지 않으면 이 예외를 던진다.
샘플 코드
fun addToDatabase(data: String) {
if (!isConnectedToDatabase) {
throw IllegalStateException("Database must be connected to add data.")
}
// Add data to database
}
함수에 전달된 인수(매개변수)가 예상과 다르거나 허용되지 않는 값일 때 발생한다.
함수에 전달된 매개변수가 특정 조건을 만족해야 하는데, 그렇지 않을 때 사용한다.
샘플 코드
*나이 값이 0이하일 때, 나이를 설정하는 함수가 실행되지 않도록 제한할 수 있다.
fun setAge(age: Int) {
if (age <= 0) {
throw IllegalArgumentException("Age must be positive.")
}
// Set the age
}