- ์๋ฐ๋ ํ๋ก๊ทธ๋จ ์คํ ์ค์ ๋ฐ์ํ๋ ์์ธ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํ ๋ฉ์ปค๋์ฆ์ ์ ๊ณตํ๋ค.
1. ์์ธ๊ณ์ธต
- ์๋ฐ์ ์์ธ ์ฒ๋ฆฌ๋ try, catch, finally, throw, throws์ ๊ฐ์ ํค์๋๋ฅผ ์ฌ์ฉํ๋ค.
- Object : ์์ธ๋ ๊ฐ์ฒด์ด๋ค. ๋ชจ๋ ๊ฐ์ฒด์ ์ต์์ ๋ถ๋ชจ๋ Object์ด๋ฏ๋ก ์์ธ์ ์ต์์ ๋ถ๋ชจ๋ Object ์ด๋ค
- Throwable : ์ต์์ ์์ธ. ํ์์ Exception๊ณผ Error๊ฐ ์์
- Error : ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ์ด๋ ์ฌ๊ฐํ ์์คํ ์ค๋ฅ์ ๊ฐ์ด ์ํ๋ฆฌ์ผ์ด์ ๋ณต๊ตฌ๊ฐ ๋ถ๊ฐ๋ฅํ ์์คํ ์์ธ.
- Exception : ์ํ๋ฆฌ์ผ์ด์ ๋ก์ง์์ ์ฌ์ฉํ ์ ์๋ ์ต์์ ์์ธ
- RumtimeException : ์ธ์ฒดํฌ ์์ธ, ์ปจํ์ผ๋ฌ๊ฐ ์ฒดํฌ ํ์ง ์๋ ์ธ์ฒดํฌ ์์ธ์ด๋ค.
2. ์์ธ ๊ธฐ๋ณธ ๊ท์น
- ์์ธ๋ ์ก์์ ์ฒ๋ฆฌํ๊ฑฐ๋ ๋ฐ์ผ๋ก ๋์ ธ์ผ ํ๋ค.
- ์์ธ๋ฅผ ์ก๊ฑฐ๋ ๋์ง ๋ ์ง์ ํ ์์ธ๋ฟ๋ง ์๋๋ผ ๊ทธ ์์ธ์ ์์๋ค๋ ํจ๊ป ์ฒ๋ฆฌํ ์ ์๋ค.
- Exception์ ์์๋ฐ์ผ๋ฉด ์ฒดํฌ ์์ธ๊ฐ ๋๋ค.
- RuntimeException์ ์์ ๋ฐ์ผ๋ฉด ์ธ์ฒดํฌ ์์ธ๊ฐ ๋๋ค.
- ์์ธ๊ฐ ์ ๊ณตํ๋ ๊ธฐ๋ณธ ๊ธฐ๋ฅ ์ค ์ค๋ฅ ๋ฉ์์ง๋ฅผ ๋ณด๊ดํ๋ ๊ธฐ๋ฅ์ด ์๋๋ฐ, super(message)๋ก ์ ๋ฌ๋ ๋ฉ์์ง๋ Throwable์ ์๋ detailMessage์ ๋ณด๊ด๋๋ฉฐ getMessage๋ฅผ ํตํด ์กฐํํ ์ ์๋ค.
- ์์ธ๋ ํ์ํ์ ์ ๋์ง๊ณ ์ก๋๊ฑฐ ๋ชจ๋ ๊ฐ๋ฅํ๋ค.
- ์ฒดํฌ ์์ธ๋ ๋์ง์ง ์ก์์ง ๊ฐ๋ฐ์๊ฐ ์ ํด์ค์ผ ํ๋ค.
* ์ฒดํฌ ์์ธ์ ์ฅ๋จ์
- ์ฒดํฌ ์์ธ๋ ์์ธ๋ฅผ ์ก์ ์ ์์ ๋, ์์ธ๋ฅผ ๋ฐ์ผ๋ก ๋์ง๋ throws ์์ธ๋ฅผ ํ์๋ก ์ ์ธํด์ผ ํ๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์ปดํ์ผ ์ค๋ฅ๊ฐ ๋ฐ์ํจ
- ์ฅ์ : ๊ฐ๋ฐ์๊ฐ ์ค์๋ก ๋๋ฝํ์ง ์๋๋ก ์ปดํ์ผ๋ฌ๋ฅผ ํตํด ๋ฌธ์ ๋ฅผ ์ก์์ฃผ๋ ํ๋ฅญํ ์์ ์ฅ์น์ด๋ค. ์ด๋ฅผ ํตํด ๊ฐ๋ฐ์๋ ์ด๋ค ์ฒดํฌ ์์ธ๊ฐ ๋ฐ์ํ๋์ง ์ฝ๊ฒ ํ์ ๊ฐ๋ฅํ๋ค.
- ๋จ์ : ๊ฐ๋ฐ์๊ฐ ๋ชจ๋ ์์ธ๋ฅผ ๋ฐ๋์ ์ก๊ฑฐ๋ ๋์ง๋๋ก ์ฒ๋ฆฌํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋ฒ๊ฑฐ๋ก์ด ์ผ์ด ๋๋ค(ํฌ๊ฒ ์ ๊ฒฝ์ฐ๊ณ ์ถ์ง ์์ ์์ธ๊น์ง ๋ชจ๋ ์ฑ๊ฒจ์ผํจ)
3. ์ธ์ฒดํฌ ์์ธ
- RuntimeErxception๊ณผ ํ์ ์์ธ๋ ์ธ์ฒดํฌ ์์ธ๋ก ๋ถ๋ฅ๋จ
- ์ธ์ฒดํฌ ์์ธ๋ ์ปดํ์ผ๋ฌ๊ฐ ์์ธ๋ฅผ ์ฒดํฌํ์ง ์๋๋ค๋ ๋ป
- ์ธ์ฒดํฌ ์์ธ๋ ์ฒดํฌ ์์ธ์ ๋์ผํ๋ throws๋ฅผ ์ ์ธํ์ง ์๊ณ ์๋ตํ ์ ์๋ค๋ ์ฐจ์ด์ ์ด ์๋ค(์๋์ผ๋ก ์์ธ๋ฅผ ๋์ง)
* ์ธ์ฒดํฌ ์์ธ์ ์ฅ๋จ์
- ์ฅ์ : ์ ๊ฒฝ์ฐ๊ณ ์ถ์ง ์์ ์ธ์ฒดํฌ ์์ธ๋ฅผ ๋ฌด์ํ ์ ์๋ค.
- ๋จ์ : ์ธ์ฒดํฌ ์์ธ๋ ๊ฐ๋ฐ์๊ฐ ์ค์๋ก ์์ธ๋ฅผ ๋๋ฝํ ์ ์๋ค.
- ์ฐธ๊ณ : ๊น์ํ์ ์ค์ ์๋ฐ - ์ค๊ธ 1ํธ
๋๊ธ