안녕하세요.
Response에 내려오는 에러코드를 Enum으로 관리하는 방법을 공부해보고 정리한 글입니다.
Enum은 Eumeration로 열거형입니다.
열거형은 서로 연관된 상수들의 집합을 의미합니다.
기존에 상수를 정의하는 방법이였던 final static string 과 같이 문자열이나 숫자들을 나타내는 기본자료형의 값을 enum을 이용해서 같은 효과를 낼 수 있습니다.
메소드 | 설명 |
---|---|
static E values() | 해당 열거체의 모든 상수를 저장한 배열을 생성하여 반환함. |
static E valueOf(String name) | 전달된 문자열과 일치하는 해당 열거체의 상수를 반환함. |
protected void finalize() | 해당 Enum 클래스가 final 메소드를 가질 수 없게 됨. |
String name() | 해당 열거체 상수의 이름을 반환함. |
int ordinal() | 해당 열거체 상수가 열거체 정의에서 정의된 순서(0부터 시작)를 반환함. |
@Getter
public enum ErrorCode {
INVALID_PARAMS(400, "InvalidParams", "필수데이터 누락, 또는 형식과 다른 데이터를 요청하셨습니다.")
, UNAUTORIZED(401, "Unauthorized", "토큰 정보가 유효하지 않습니다.")
, UNAVAILABLE(401, "Unavailable", "회원가입이 완료되지 않은 사용자입니다.")
, NOT_FOUND(404, "NotFound", "존재하지 않는 데이터입니다.")
, CONFLICT(409, "Conflict", "데이터가 충돌되었습니다.")
;
ErrorCode (int status, , String code, String message) {
this.status = status;
this.code = code;
this.message = message;
}
private int status;
private String code;
private String message;
public static ErrorCode valueOfCode(String errorCode) {
return Arrays.stream(values())
.filter(value -> value.code.equals(errorCode))
.findAny()
.orElse(null);
}
}
코드 | 상태 코드 | 에러 메세지 |
---|---|---|
InvalidParams | 400 | 필수데이터 누락, 또는 형식과 다른 데이터를 요청하셨습니다. |
Unauthorized | 401 | 토큰 정보가 유효하지 않습니다. |
Unavailable | 401 | 회원가입이 완료되지 않은 사용자입니다. |
NotFound | 404 | 존재하지 않는 데이터입니다. |
Conflict | 409 | 데이터가 충돌되었습니다. |
참고
[Java] Enum의 사용법
[에러처리101] Enum으로 에러코드 관리하기
TCP SCHOOL Enum 클래스