Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BE] Custom Error handling 설정 #9

Closed
4 tasks done
chea-young opened this issue Dec 10, 2023 · 2 comments · Fixed by #10
Closed
4 tasks done

[BE] Custom Error handling 설정 #9

chea-young opened this issue Dec 10, 2023 · 2 comments · Fixed by #10

Comments

@chea-young
Copy link
Contributor

chea-young commented Dec 10, 2023

⚙️ 환경설정할 부분

🔨 상세 작업 내용

  • errorCode enum 생성 및 설정
    • enum 생성
    • errorCode 정리 문서 생성
  • custom exception 생성 및 설정
  • custom handler 생성 및 설정
  • springConfig 설정
    • custom exception handler 동작 설정

📄 참고 사항

⏰ 예상 소요 기간

1시간

@chea-young chea-young added this to the 1차 웹 오픈 milestone Dec 10, 2023
@chea-young chea-young self-assigned this Dec 10, 2023
Copy link

Branch chore/issue-9 created for issue: [BE] Custom Error handling 설정

chea-young added a commit that referenced this issue Dec 11, 2023
Custom exception 설정을 하기 위한, ErrorCode enum, CustomException, CustomExceptionHandler, ErrorDTO를 생성. CustomException 핸들링을 동작시키기 위한 Security 설정을 추가함.
CustomException 핸들링 동작을 확인할 수 있는 test api 추가 (api/develop/v1/unauthorized, api/develop/v1/bad-request)
chea-young added a commit that referenced this issue Dec 11, 2023
dto에 error 폴더를 생성 뒤, request/response로 분리하여 관리하는 방법으로 변경
@chea-young chea-young linked a pull request Dec 11, 2023 that will close this issue
@chea-young
Copy link
Contributor Author

상세 플로우

  1. throw new CustomException 발생시킴
  • 요청 시, 발생 시킬 HttpStatus와 전달할 ErrorCode 전달
  1. CustomException 객체 생성
  • 만약, 의도하지 않은 에러인 경우, errorCode에 ErrorCode.UNKNOWN/detail에 발생된 Exception에 message 저장
    • 추후, logging 시스템에 저장된 log나 Client 전달된 error response 확인 후, 이슈 수정을 하기 위한 의도
  1. CustomExceptionHandler에서 CustomException 객체에 대한 ErrorDTO 생성
  2. 요청이 /error 다시 전달되어 Client로 ErrorDTO 전달

Test 용 API

  • api/develop/v1/bad-request
    • Response
{
   "code": 4001,
   "msg": "유효하지 않은 비밀번호 입니다.",
   "detail": null
}
  • api/develop/v1/unauthorized
    • Response
{
   "code": 4010,
   "msg": "만료된 토큰입니다.",
   "detail": null
}

chea-young pushed a commit that referenced this issue Dec 13, 2023
code의 값이 null인 경우는 존재하지 않기 때문에 int 타입으로 변경
chea-young added a commit that referenced this issue Dec 13, 2023
1. ErrorDTO에 detail 부분 삭제
2. 에러 전, log.warn 추가
3. DTO 타입 Record 타입으로 통일
chea-young added a commit that referenced this issue Dec 13, 2023
Custom exception 설정을 하기 위한, ErrorCode enum, CustomException, CustomExceptionHandler, ErrorDTO를 생성. CustomException 핸들링을 동작시키기 위한 Security 설정을 추가함.
CustomException 핸들링 동작을 확인할 수 있는 test api 추가 (api/develop/v1/unauthorized, api/develop/v1/bad-request)
chea-young added a commit that referenced this issue Dec 13, 2023
dto에 error 폴더를 생성 뒤, request/response로 분리하여 관리하는 방법으로 변경
chea-young pushed a commit that referenced this issue Dec 13, 2023
code의 값이 null인 경우는 존재하지 않기 때문에 int 타입으로 변경
chea-young added a commit that referenced this issue Dec 13, 2023
1. ErrorDTO에 detail 부분 삭제
2. 에러 전, log.warn 추가
3. DTO 타입 Record 타입으로 통일
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant