GlobalException 동작 방식
Service 또는 Contorller에서 딱 한 번 throw 발생되며 이때 ErrorException 객체가 생성되어 status, message가 객체 안에 저장된다
Service → Controller → DispatcherServlet → Stpring 아무도 try-catch 안 하고 예외는 자동으로 위로 전파되는데 이걸 Spring이 감지했다고 표현한다
GlobalExceptionHandeler는 이미 던진 ErrorException을 잡고 — catch
그 안에 있던 정보 (status, message)를 꺼내서
ResponseEntity + ApiResponse로 새 HTTP 응답을 만들어서 return 한다

new ErrorException vs throw new ErrorException
new ErrorException(400,"에러");
위 코드는 객체 하나 만들었을 뿐 아무 일도 안 일어난다 변수에 담지 않으면 그냥 사라진다
throw new ErrorException(400, "에러");
지금 흐름을 중단하고 이 예외를 위로 던져라는 의미인데
- 현재 메서드 즉시 종료
- 호출 스택을 따라 전파
- GlobalExceptionHandler 까지 도달
throw가 중요한 이유
throw new AuthException();
이 한 줄이 의미하는 건
이건 정상 결과가 아니다. 실패 흐름으로 전환하라
→ 그래서 컨트롤러 return 안 타고 글로벌 예외 핸들러로 간다
'Backend > 🌱 Spring' 카테고리의 다른 글
| Spring과 SpringBoot (0) | 2026.05.05 |
|---|---|
| [스케줄링]Spring Scheduler로 임시 첨부파일 정리하기 (0) | 2026.04.25 |
| MVC(Model–View–Controller) (0) | 2026.01.12 |
| Spring Bean 생명 주기 (1) | 2026.01.12 |
| [Spring]API 로깅 (0) | 2025.08.21 |