실제 예외 처리 흐름
✅ 예시 시나리오
1. 사용자 정의 예외 클래스 (중복 이메일 예외)
package com.example.exception;
public class DuplicateEmailException extends RuntimeException {
public DuplicateEmailException(String email) {
super("이미 사용 중인 이메일입니다: " + email);
}
}2. 서비스 계층
package com.example.service;
import com.example.exception.DuplicateEmailException;
import com.example.model.User;
import com.example.repository.UserRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
@Service
@RequiredArgsConstructor
public class UserService {
private final UserRepository userRepository;
public void registerUser(String email, String name) {
if (userRepository.existsByEmail(email)) {
throw new DuplicateEmailException(email);
}
User user = new User(email, name);
userRepository.save(user);
}
}3. 컨트롤러 계층
4. 공통 예외 처리기 (@RestControllerAdvice)
@RestControllerAdvice)🔁 실행 결과 예시
✅ 1. @RestControllerAdvice가 하는 일
@RestControllerAdvice가 하는 일✅ 2. 왜 Controller에서 throws가 없어도 동작하는가?
throws가 없어도 동작하는가?✅ 3. 왜 "마지막에 예외 처리"라고 말하는가?
✅ 요약
질문
답변
Last updated