728x90
반응형
💡 예외처리
Controller레벨에서 처리 - @ExceptionHandler
@RestController
public class TestController {
// 예외 핸들러
@ExceptionHandler(Exception.class)
public String controllerExceptionHandler(Exception e) {
return "/error/404";
}
@GetMapping("hello1")
public String hello1() {
throw new TestException("hello1 에러 "); // 강제로 예외 발생
}
}
Global 레벨에서의 처리 - @ControllerAdvice
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(Exception.class)
public String testExceptionHandler(Exception e) {
return "/error/404";
}
}
StatusCode : 400~은 클라이언트 에러, 500~은 서버에서 에러가 발생
💡 예외처리 우선순위
- 컨트롤러 메서드 내에서 try-catch처리
- 컨트롤러 @ExceptionHandler메서드가 처리
- @ControllerAdvice클래스의 @ExceptionHandler메서드가 처리
- 예외 종류별로 뷰 지정 - SimpleMappingExceptionResolver
- 응답 상태 코드별로 뷰 지정 - <error-page>
728x90
반응형
'🍃SpringFramework > SpringMVC' 카테고리의 다른 글
[SpringMVC] DI (Dependency Injection) (0) | 2023.08.19 |
---|---|
[SpringMVC] 데이터 변환 / 검증 (0) | 2023.08.19 |
[SpringMVC] Cookie & Session (0) | 2023.08.19 |
[SpringMVC] redirect & forward (0) | 2023.08.19 |
[SpringMVC] RequestParam & ModelAttribute (0) | 2023.08.19 |