Exceptions

예외 클래스 정의. API 예외 계층 구조.

인터페이스: SentryAlertHandler

interface SentryAlertHandler {
    var capturable: Boolean
    var notifiable: Boolean
}

Sentry 알림 설정 인터페이스.

기본 클래스: ApiException

abstract class ApiException : RuntimeException, SentryAlertHandler

모든 API 예외의 기본 클래스.

필드

필드타입설명
messageKeyMessageKey메시지 키
objsArray<*>추가 정보
messageArgumentsArray<*>?메시지 인자
capturableBooleanSentry 캡처 여부
notifiableBoolean알림 여부

예외 클래스 목록

EntityNotFoundException

엔티티 없음 예외. HTTP 404 응답.

MethodArgumentInvalidException

메서드 인자 유효성 예외. HTTP 400 응답.

  • capturable: false (기본)

AuthorizationFailedException

인증 실패 예외. HTTP 401 응답.

CacheKeyInvalidException

캐시 키 유효성 예외. HTTP 410 응답.

  • capturable: false (기본)

SystemMaintenanceException

시스템 점검 예외. HTTP 550 응답.

InternationalSearchException

국제선 검색 예외. HTTP 500 응답.

확장 함수

capture()

fun ApiException.capture(silence: Boolean = false): ApiException

Sentry 캡처 활성화. silence=true면 알림 비활성화.

withMessageArguments()

fun ApiException.withMessageArguments(vararg messageArguments: Any): ApiException

메시지 인자 설정.

HTTP 상태 매핑

예외HTTP 상태
EntityNotFoundException404 NOT_FOUND
MethodArgumentInvalidException400 BAD_REQUEST
AuthorizationFailedException401 UNAUTHORIZED
CacheKeyInvalidException410 GONE
SystemMaintenanceException550 (커스텀)
InternationalSearchException500 INTERNAL_SERVER_ERROR

특징

  • 계층 구조: ApiException 상속
  • Sentry 연동: 선택적 에러 캡처
  • i18n 지원: MessageKey 기반 메시지