Exceptions
예외 클래스 정의. API 예외 계층 구조.
인터페이스: SentryAlertHandler
interface SentryAlertHandler {
var capturable: Boolean
var notifiable: Boolean
}Sentry 알림 설정 인터페이스.
기본 클래스: ApiException
abstract class ApiException : RuntimeException, SentryAlertHandler모든 API 예외의 기본 클래스.
필드
| 필드 | 타입 | 설명 |
|---|---|---|
messageKey | MessageKey | 메시지 키 |
objs | Array<*> | 추가 정보 |
messageArguments | Array<*>? | 메시지 인자 |
capturable | Boolean | Sentry 캡처 여부 |
notifiable | Boolean | 알림 여부 |
예외 클래스 목록
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): ApiExceptionSentry 캡처 활성화. silence=true면 알림 비활성화.
withMessageArguments()
fun ApiException.withMessageArguments(vararg messageArguments: Any): ApiException메시지 인자 설정.
HTTP 상태 매핑
| 예외 | HTTP 상태 |
|---|---|
| EntityNotFoundException | 404 NOT_FOUND |
| MethodArgumentInvalidException | 400 BAD_REQUEST |
| AuthorizationFailedException | 401 UNAUTHORIZED |
| CacheKeyInvalidException | 410 GONE |
| SystemMaintenanceException | 550 (커스텀) |
| InternationalSearchException | 500 INTERNAL_SERVER_ERROR |
특징
- 계층 구조: ApiException 상속
- Sentry 연동: 선택적 에러 캡처
- i18n 지원: MessageKey 기반 메시지