๐ 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์ ํ ๋ฉ์๋์์ ์ฒ๋ฆฌ ํ ์ ์๋ค๋ ์ 
- ํด๋น ํผ๋ฅผ๋ฆฌ์ผ์ด์ ์ ๊ฐ์ ์ข ๋ฅ์ ์์ธ์ฒ๋ฆฌ๋ก ์ธํ ๋ณต๊ตฌ์ ๊ฐ๋ฅ์ฑ์ด ๋์์ง๋ค๋์ 
- ๊ฐ๊ฐ์ ๋ค๋ฅธ ์์ธ์ํฉ๋ค์ ๊ดํด ๊ฐ๊ธฐ ๋ค๋ฅธ ๋ทฐ๋ฅผ ๋ฐํ ํ ์ ์๋ค๋ ์ฅ์ ์ด ์๋ค.