Skip to content

Conversation

@LimKangHyun
Copy link
Collaborator

@LimKangHyun LimKangHyun commented Jul 15, 2025

🛰️ Issue Number

Closes #35

🪐 작업 내용

에러코드

에러코드는 공통 에러처리와 도메인별로 Enum클래스를 나누어 놓았습니다. 에러코드가 많지 않은 경우, 하나에 몰아넣고 주석으로 구분하는 경우가 많은데, 분리하는 경우가 각 도메인별 책임분리도 되고,

Room room =
                roomRepository
                        .findRoom(request.roomId())
                        .orElseThrow(() -> new CustomException(RoomErrorCode.ROOM_NOT_FOUND));

위 코드와 같이 유지보수나 가독성에 도움이 된다고 판단하였습니다.

글로벌 예외 처리 로직 - GlobalHandlerException

  • handleCustomException
    → CustomException 을 잡아서, 예외에 담긴 커스텀 에러코드와 메시지, HTTP 상태코드를 사용해 응답을 만들어서 내려줍니다.
    즉, 직접 정의한 비즈니스 예외 처리용입니다.
스크린샷 2025-07-15 오전 11 19 44
  • handleException
    → Exception 클래스(모든 예외의 최상위)를 잡아서, 정의하지 않은 모든 예외에 대해 500 서버 에러 응답을 내려줍니다.
    즉, 의도하지 않은 에러, 예상하지 못한 에러를 위한 보험입니다.
스크린샷 2025-07-15 오전 11 55 26
  • handleMethodArgumentNotValidException
    @Valid 검증 실패 시 발생하는 MethodArgumentNotValidException 을 잡아, 필드별 에러 메시지 중 첫 번째를 뽑아 BAD_REQUEST 코드와 함께 반환합니다.
스크린샷 2025-07-15 오전 11 19 31

📚 Reference

✅ Check List

  • 코드가 정상적으로 컴파일되나요?
  • 테스트 코드를 통과했나요?
  • merge할 브랜치의 위치를 확인했나요?
  • Label을 지정했나요?

@LimKangHyun LimKangHyun linked an issue Jul 15, 2025 that may be closed by this pull request
1 task
@LimKangHyun LimKangHyun requested review from dlsrks1021, jiwon1217, segye, sehee123 and silver-eunjoo and removed request for segye July 15, 2025 03:03
@LimKangHyun LimKangHyun self-assigned this Jul 15, 2025
@LimKangHyun LimKangHyun added the enhancement New feature or request label Jul 15, 2025
Copy link
Collaborator

@jiwon1217 jiwon1217 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

에러 코드도 도메인 마다 나누니까, 에러 코드를 변경하거나 추가할 때 작업이 용이하겠네요 👍

Copy link
Collaborator

@silver-eunjoo silver-eunjoo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[L4-변경제안]

JSON 자체가 형식이 잘못됐을 때 (콤마, 괄호 누락 등), 요청 바디가 빈 JSON ("" 또는 {} 없이 아예 없을 때), 타입이 잘못됐을 때 (int인데 문자열이 들어온 경우)를 처리할 수 있는 HttpMessageNotReadableException 예외도 핸들링하면 좋을 것 같습니다 !

@silver-eunjoo
Copy link
Collaborator

silver-eunjoo commented Jul 15, 2025

JSON 자체가 형식이 잘못됐을 때 (콤마, 괄호 누락 등), 요청 바디가 빈 JSON ("" 또는 {} 없이 아예 없을 때), 타입이 잘못됐을 때 (int인데 문자열이 들어온 경우)를 처리할 수 있는 HttpMessageNotReadableException 예외도 핸들링하면 좋을 것 같습니다 !

[L5-참고의견]
뭔가 얘도 BAD_REQUEST로 처리하면 좋을 것 같아서요..!

@LimKangHyun
Copy link
Collaborator Author

JSON 자체가 형식이 잘못됐을 때 (콤마, 괄호 누락 등), 요청 바디가 빈 JSON ("" 또는 {} 없이 아예 없을 때), 타입이 잘못됐을 때 (int인데 문자열이 들어온 경우)를 처리할 수 있는 HttpMessageNotReadableException 예외도 핸들링하면 좋을 것 같습니다 !

[L5-참고의견] 뭔가 얘도 BAD_REQUEST로 처리하면 좋을 것 같아서요..!

말씀하신 것처럼 타입에 대한 입력 예외 처리도 있어야할 것 같네요! 추가 해놓겠습니다 감사합니다!👍

Copy link
Collaborator

@silver-eunjoo silver-eunjoo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

고생하셨습니다 ! 도메인별로 나눠져있어서 정말 보기 좋은 것 같아요 ! 👍

Copy link
Collaborator

@sehee123 sehee123 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

수고하셨습니다! 🙌

@LimKangHyun LimKangHyun merged commit 509026e into dev Jul 15, 2025
@LimKangHyun LimKangHyun deleted the feat/35 branch July 18, 2025 12:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[feat] 커스텀 예외 공통 처리

5 participants