개발/Kotlin
Kotlin - Enum 사용
브라운구
2022. 7. 22. 17:42
반응형
아래 코드는 외부 API를 통해 Code를 받아왔을 때, 에러를 발생시키기 위한 코드이다.
enum class ExternalErrorCode(val code : String, val defaultMessage : String){
HEADER_ERROR("4002", "Header Error"),
INVALID_IP_UNAUTHORIZED("4008", "인증되지 않은 IP 입니다"),
INVALID_CODE("4106", "상품코드 또는 ID가 유효하지 않습니다"),
EMPTY_RESULT("4115", "검색된 데이터가 없습니다") {
override fun error(message: String?) {
throw EmptyResultException(message ?: defaultMessage)
}
},
DATA_ACCESS_ERROR("4205", "DataAccessException");
open fun error(message: String?){
throw ExternalResponseException(message?:defaultMessage)
}
companion object{
fun parse(code: String) : ExternalErrorCode {
return values().find { it.code == code }
}
}
}
enum class ExternalErrorCode 내부에 정의된 error 함수는 모든 enum 값에 대해서 공통적으로 처리되는 함수이며, 특정 enum 값 아래에 override 된 error 함수는 재정의 하여 해당 enum 값의 함수로만 작동하게 된다.
위의 코드에서는 EMPTY_RESULT에 대한 enum 값만 EmptyResultException을 throw 하게 되어있으면 나머지는 공통적으로 ExternalResponseException을 throw하게 된다.
반응형