Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- 일상의행복
- si회사
- 미국채권
- 만화로보는3분철학
- Rectangle
- 도커
- docker
- 코딩 특수문자
- 만화철학
- nhn cloud
- sts3
- 거래소 운영시간
- 티스토리 야간모드
- Mac m1
- 클라우드기초교육
- 다크모드
- 클라우드입문자
- 쿠버네티스기초
- 3분철학
- 다국어 입력전환
- 쿠버네티스
- sm회사
- 슬래시24
- m1 sts3 설치
- nhn_cloud_console
- 성장마인드셋
- Kubernetes
- 원씽
- 교양철학
- spring mvc project
Archives
- Today
- Total
Good Morning
Spring Framework에서의 효과적인 예외 처리 본문
Spring Framework에서 예외를 처리하는 다양한 방법에 대해 알아보겠습니다. 예외 처리는 견고한 애플리케이션을 만드는 데 필수적인 요소입니다. Spring은 이를 위한 여러 가지 강력한 도구를 제공합니다.
1. 컨트롤러 레벨 예외 처리
먼저 ExceptionController
클래스를 살펴보겠습니다:
@Controller
public class ExceptionController {
@ExceptionHandler(Exception.class)
public String catcher(Exception ex, Model m) {
m.addAttribute("ex", ex);
return "error";
}
@ExceptionHandler({NullPointerException.class, FileNotFoundException.class})
public String catcher2(Exception ex, Model m) {
m.addAttribute("ex", ex);
return "error";
}
// 요청 매핑 메서드들...
}
이 컨트롤러에서는 @ExceptionHandler
어노테이션을 사용하여 예외를 처리합니다.
- 첫 번째 메서드는 모든
Exception
을 처리합니다. - 두 번째 메서드는
NullPointerException
과FileNotFoundException
을 특별히 처리합니다.
2. 글로벌 예외 처리
애플리케이션 전체에 적용되는 예외 처리를 원한다면 @ControllerAdvice
를 사용할 수 있습니다:
@ControllerAdvice("com.fastcampus.ch2")
public class GlobalCatcher {
@ExceptionHandler(Exception.class)
public String catcher(Exception ex, Model m) {
m.addAttribute("ex", ex);
return "error";
}
@ExceptionHandler({ NullPointerException.class, FileNotFoundException.class })
public String catcher2(Exception ex, Model m) {
m.addAttribute("ex", ex);
return "error";
}
}
이 클래스는 "com.fastcampus.ch2" 패키지의 모든 컨트롤러에 대한 예외를 처리합니다.
3. 예외 발생 시나리오
ExceptionController
와 ExceptionController2
에서 다양한 예외 발생 시나리오를 볼 수 있습니다:
@RequestMapping("/ex")
public String main(Model m) throws Exception {
throw new Exception("예외가 발생했습니다");
}
@RequestMapping("/ex2")
public String main2() throws Exception {
throw new FileNotFoundException("예외가 발생했습니다");
}
이러한 메서드들은 의도적으로 예외를 발생시켜 우리의 예외 처리 로직을 테스트합니다.
정리
- 컨트롤러 레벨 예외 처리:
@ExceptionHandler
를 사용하여 특정 컨트롤러 내의 예외를 처리합니다. - 글로벌 예외 처리:
@ControllerAdvice
를 사용하여 여러 컨트롤러에 걸쳐 예외를 처리합니다. - 세분화된 예외 처리: 특정 예외 타입에 대해 다른 처리 로직을 적용할 수 있습니다.
- Model 객체 활용: 예외 정보를 Model에 추가하여 에러 페이지에 전달할 수 있습니다.
'Back-End > Spring' 카테고리의 다른 글
Java 리플렉션을 이용한 간단한 의존성 주입 구현하기 (0) | 2024.08.04 |
---|---|
스프링 MVC에서의 에러 페이지 리다이렉션 이해하기 (1) | 2024.08.01 |
Spring MVC에서 로그아웃 기능 구현 시 흔히 발생하는 오류와 해결 방법 (0) | 2024.07.31 |
Spring MVC에서 쿠키를 활용한 사용자 아이디 기억하기 (0) | 2024.07.31 |
Spring MVC를 이용한 로그인 기능 구현: 최적의 설계와 일반적인 실수 분석 (0) | 2024.07.31 |