(require) 범위를 제한합니다.
require(num > 10){
"num은 10보다 반드시 커야 합니다."
}
// java.lang.IllegalArgumentException: num은 10보다 반드시 커야 합니다.
(check) 상태와 관련된 예측을 검사할때 사용합니다.
check(false){
"반드시 true여야만 합니다."
}
// java.lang.IllegalStateException: flag는 반드시 true여야만 합니다.
checkNotNull("apple"){
"널이 아니어야만 합니다."
}
// java.lang.IllegalStateException: 널이 아니어야만 합니다.
(require/requireNotNull) 파라미터와 관련된 예측을 검사할떄 사용합니다.
require(false){
"반드시 TRUE여아만 한다"
}
// java.lang.IllegalArgumentException: 반드시 TRUE여아만 한다
val text: String? = null
requireNotNull(text){
"반드시 널이 아니어야 한다."
}
// java.lang.IllegalArgumentException: 반드시 널이 아니어야 한다.
require와 check가 거의 비슷하지만 require 뒤에 check가 사용됩니다.
가급적이면 Exception이 알려진 표준 오류를 사용하는것이 좋습니다.
새롭게 만들면 그것에 대한 추가 학습 인지가 필요하기 때문입니다.