๐
๋ ์ง
2025-04-24
๐ ํ์ต ๋ด์ฉ
1๏ธโฃ @ExceptionHandler ๊ฐ๋
โ
์ค๋ช
@ExceptionHandler
๋ ์คํ๋ง MVC์์ ํน์ ์ปจํธ๋กค๋ฌ ๋ด ์์ธ๋ฅผ ์ฒ๋ฆฌํ๋ ์ด๋
ธํ
์ด์
.
- ๋ฐ์ํ ์ ์๋ ์์ธ ํ์
์ ์ง์ ํด๋๊ณ , ์์ธ ๋ฐ์ ์ ํด๋น ๋ฉ์๋๊ฐ ํธ์ถ๋จ.
- ๋ฐํ๊ฐ์ผ๋ก View ์ด๋ฆ์ ๋ฆฌํดํ์ฌ ์๋ฌ ํ์ด์ง๋ก ์ด๋.
2๏ธโฃ ์ปจํธ๋กค๋ฌ ๊ฐ๋ณ ์์ธ ์ฒ๋ฆฌ ์์
@ExceptionHandler(FileNotFoundException.class)
public String fileNotFoundExceptionHandler(Exception e, Model model) {
log.error("error: " + e);
return "except/error";
}
- ํน์ ์์ธ ์ฒ๋ฆฌ ์ ์ฃผ๋ก ์ฌ์ฉํ๋ ๋ฐฉ์.
- ์ปจํธ๋กค๋ฌ๋ง๋ค ๋ณ๋๋ก ์์ฑํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์์ธ๊ฐ ๋ง์์ง๋ฉด ๊ด๋ฆฌ๊ฐ ๋ฒ๊ฑฐ๋ก์.
3๏ธโฃ ๋ชจ๋ ์์ธ ํตํฉ ์ฒ๋ฆฌ (์ปจํธ๋กค๋ฌ ๋จ์)
@ExceptionHandler(Exception.class)
public String exceptionHandler(Exception e, Model model) {
log.error("error: " + e);
return "except/error";
}
- ์ปจํธ๋กค๋ฌ ๋ด์์ ๋ฐ์ํ๋ ๋ชจ๋ ์์ธ๋ฅผ ํ๋์ ๋ฉ์๋๋ก ์ฒ๋ฆฌ.
- ๋จ, ์ด ๋ฐฉ๋ฒ๋ ์ปจํธ๋กค๋ฌ๋ณ ๋ฐ๋ณต ๋ฐ์.
4๏ธโฃ ์ ์ญ ์์ธ ์ฒ๋ฆฌ (@ControllerAdvice)
@ControllerAdvice
@Slf4j
public class GlobalExceptionHandler {
@ExceptionHandler(Exception.class)
public String allExceptionHandler(Exception e, Model model) {
log.info("GlobalExceptionHandler's error : " + e);
model.addAttribute("ex", e);
return "global_error";
}
}
- ํ๋ก์ ํธ ์ ์ฒด ์์ธ๋ฅผ ํ ๊ณณ์์ ์ผ๊ด ์ฒ๋ฆฌ.
- ์์ธ ์ฒ๋ฆฌ ๋ก์ง์ ํตํฉํ๊ณ , ์ฝ๋ ์ค๋ณต์ ์ค์ผ ์ ์์.
- ์ค๋ฌด์์๋ ์ฃผ๋ก ์ด ๋ฐฉ์์ ์ฌ์ฉ.
5๏ธโฃ JSP ์๋ฌ ํ์ด์ง ์์
<%@ page isErrorPage="true" %>
<h1>ERROR PAGE</h1>
EXCEPTION : <%= exception %>
isErrorPage="true"
์ค์ ์, JSP ๋ด์์ exception
๊ฐ์ฒด ์ฌ์ฉ ๊ฐ๋ฅ.
- ๋ฐ์ํ ์์ธ์ ์์ธ ์ ๋ณด๋ฅผ ์ฌ์ฉ์์๊ฒ ํ์ํ๊ฑฐ๋, ์ฌ์ฉ์ ์นํ์ ์ผ๋ก ๊ฐ๊ณตํด ์ถ๋ ฅ ๊ฐ๋ฅ.
๐ฅ ์ ๋ฆฌ
- ๊ตญ์์ ์์ธ ์ฒ๋ฆฌ: ์ปจํธ๋กค๋ฌ๋ง๋ค ์์ธ๋ฅผ ๋ค๋ฅด๊ฒ ์ฒ๋ฆฌํด์ผ ํ ๋ ์ ์ฉ.
- ์ ์ญ ์์ธ ์ฒ๋ฆฌ: ์์คํ
์ ์ฒด์ ์์ธ๋ฅผ ์ผ๊ด ๊ด๋ฆฌํ๊ณ ์ถ์ ๋ ์ฌ์ฉ.
- ์ค๋ฌด ํ:
- ๊ณตํต ์์ธ๋
@ControllerAdvice
๋ก ์ฒ๋ฆฌ.
- ํน์ ์ปจํธ๋กค๋ฌ๋ง์ ๋ก์ง์ ์์ธ๋
@ExceptionHandler
๋ก ๋ณ๋ ์ฒ๋ฆฌ.
- ๋ฐ๋์ ๋ก๊น
์ ํตํด ์์ธ ์ถ์ ๊ฐ๋ฅํ๋๋ก ์ค์ ํ ๊ฒ.
๐ ์ฐธ๊ณ ์๋ฃ