반응형
아래 코드는 외부 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하게 된다.
반응형
'개발 > Kotlin' 카테고리의 다른 글
Spring REST Docs 사용하기 - 설정 (0) | 2023.03.15 |
---|---|
Spring Boot 멀티모듈 프로젝트 만들기[Kotlin, Gradle] (0) | 2023.01.16 |
Kotlin DSL로 Gradle 버전관리하기 (0) | 2022.07.21 |
TransactionalEventListener 그리고 EventListener (0) | 2022.07.12 |
Gradle - dependency-management Plugin (0) | 2022.06.19 |