1. 스프링 MVC 예외 처리 개요
- 스프링 MVC는 애플리케이션에서 발생하는 예외를 우아하게 처리할 수 있는 다양한 메커니즘을 제공합니다.
- 예외 처리는 애플리케이션의 안정성과 사용자 경험 향상에 중요한 역할을 합니 다.
- 스프링의 예외 처리 방식은 크게 다음과 같이 나뉩니다:
- 컨트롤러 레벨의
@ExceptionHandler
- 글로벌 레벨의
@ControllerAdvice
또는@RestControllerAdvice
- HTTP 상태 코드 기반의 오류 페이지
- 컨트롤러 레벨의
2. @ExceptionHandler 애노테이션
@ExceptionHandler
애노테이션은 컨트롤러 또는@ControllerAdvice
클래스 내에서 예외를 처리하는 메서드를 지정하는 데 사용됩니다.- 이 애노테이션이 적용된 메서드는 지정된 예외 타입이 발생했을 때 자동으로 호출됩니다.
2.1 기본 사용법
@Controller
나@RestController
클래스 내에서 사용할 수 있습니다.- 처리하고자 하는 예외 타입을 지정하여 해당 예외가 발생했을 때 특정 응답을 반환할 수 있습니다.
기본 예제 코드
@Controller
public class SimpleController {
@ExceptionHandler(IOException.class)
public ResponseEntity<String> handle() {
return ResponseEntity.internalServerError().body("Could not read file storage");
}
}
- 이 예제는
IOException
이 발생했을 때 500 상태 코드와 함께 에러 메시지를 반환합니다.