๐ Exception
Checked Exception / UnChecked Exception
Checked Exception | UnChecked Exception |
---|---|
์๊ฒฉํ ์์ธ์ฒ๋ฆฌ ๊ณผ์ | ๊ฐ์ ํ์ง ์๋ ์ฒ๋ฆฌ๊ณผ์ |
์ปดํ์ผ ๋จ๊ณ | ์คํ๋จ๊ณ |
roll-back โ | roll-back โญ |
RuntimeException์ ์ ์ธํ ๋ชจ๋ ์์ธ | RuntimeException ์ ํ์ ์์ธ |
Service์ Exception
๋๊ฐ Service๊ณ์ธต์์๋ ๋น์ฆ๋์ค ๋ก์ง์ ์ํํ๋ ๋ณธ ๋ชฉ์ ์ ๋ง๊ฒ Exception์ฒ๋ฆฌ๋ ํ์ง ์๋๋ค. ์ด ๋ง์ ํ์์ ์ธ ๊ฒ ๊ณผ๋ ๋ค๋ฅธ ์๋ฏธ๋ก์จ Exception์ฒ๋ฆฌ์ ํ์์ฑ์ด ์๋ค๊ณ ์ดํดํ๊ณ ๋์ด๊ฐ์.
โ ๊ทธ๋ผ ์ด๋ป๊ฒ ์ฒ๋ฆฌํด์ผ ํ ๊น
Service์ Controller ๊ณ์ธต์์ ์ฒ๋ฆฌํ๋๊ฒ์ด ์๋ DAO์์ Exception์ฒ๋ฆฌ๊ฐ ์ด๋ฃจ์ด์ง๋ค. ์์ ์ UserDAO์ SQLException์ ์ฒ๋ฆฌ๋ Exception์ ์์๋ฐ์ ์ง์ ์ ์ํ UserDAOException ํด๋์ค์์
RuntimeException
์ ์ฌ์ฉํด ์ ํํ๋๊ฒ์ผ๋ก ์ด๋ฃจ์ด์ก๋ค.
try{
~
} catch (SQLException e) {
throw new UserDAOException();
//์๋๋ RuntimeException.
}
์ด์ฒ๋ผ @ExceptionHandler Annotation์ ์ฌ์ฉํ Exception ํธ๋ค๋ฌ ๋งคํ์ ๊ฐ๋ณ์ ์ธ ์์ธ์ฒ๋ฆฌ ๋ณด๋ค
- ๋ชจ๋ Exception์ ํ ๋ฉ์๋์์ ์ฒ๋ฆฌ ํ ์ ์๋ค๋ ์
- ํด๋น ํผ๋ฅผ๋ฆฌ์ผ์ด์ ์ ๊ฐ์ ์ข ๋ฅ์ ์์ธ์ฒ๋ฆฌ๋ก ์ธํ ๋ณต๊ตฌ์ ๊ฐ๋ฅ์ฑ์ด ๋์์ง๋ค๋์
- ๊ฐ๊ฐ์ ๋ค๋ฅธ ์์ธ์ํฉ๋ค์ ๊ดํด ๊ฐ๊ธฐ ๋ค๋ฅธ ๋ทฐ๋ฅผ ๋ฐํ ํ ์ ์๋ค๋ ์ฅ์ ์ด ์๋ค.