Skip to content

[Feature] 전역 예외 처리(Global Exception Handling) 도입 #8

@jihukimme

Description

@jihukimme

📋 작업 내용

  • 현재 전체적인 코드에 예외 처리 로직이 구현되어 있지 않음
  • 컨트롤러, 서비스, 데이터 접근 계층에서 발생할 수 있는 예외를 통합적으로 처리할 수 있도록 전역 예외 처리기를 도입해야 함
  • 사용자에게는 적절한 에러 메시지와 상태 코드를 제공하고, 내부적으로는 예외 로깅을 통해 디버깅이 가능하도록 설계 필요

✅ 할 일

  • GlobalExceptionHandler 클래스 생성
    • @ControllerAdvice + @ExceptionHandler 기반으로 공통 예외 처리
    • 주요 예외: IllegalArgumentException, EntityNotFoundException, CustomException
  • 공통 에러 응답 객체 생성
    • ErrorResponse DTO 설계 (예: message, status, timestamp 필드 포함)
  • 예외 발생 시 ErrorResponse 형태로 반환되도록 구현
    • REST API: @RestControllerAdvice 사용 시 ResponseEntity<ErrorResponse>로 반환
    • Thymeleaf 페이지: 필요 시 Model에 에러 정보 전달하여 에러 페이지 표시
  • 서비스 및 DAO 계층에 명시적 예외 발생 추가
    • Optional.orElseThrow, 유효성 검사 실패 시 throw new IllegalArgumentException(...)
  • (선택) 커스텀 예외 클래스 정의
    • 예: ItemNotFoundException, InvalidSearchParameterException 등 도메인별 예외 분리

Metadata

Metadata

Assignees

Labels

feat구현/개선 사항에 관련된 내용입니다.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions