did_story
[Java] ์๋ฐ์์ Checked Exception๊ณผ Uncheck Exception์ ์ฐจ์ด์ . ๋ณธ๋ฌธ
[Java] ์๋ฐ์์ Checked Exception๊ณผ Uncheck Exception์ ์ฐจ์ด์ .
์ด์ ์์ 2025. 6. 17. 15:54์๋ฌด ์๊ฐ ์์ด Custom Exception์ด ์๊ฐ๋ ๋๋ผ๋ฉด
1. Checked Exception
์ปดํ์ผ ์์ ์์ ํ์ธ ๋๋ ์๋ฌ๋ก ์๋ฐ์์๋ IOException, SQLException ๋ฑ์ด ์ด์ ์ํฉ๋๋ค (๋ฐ๋์ ์ฒ๋ฆฌํด์ผํ๋ ์์ธ). Checked Exception์ ์ ๋ฐํ๋ ๋ฉ์๋๋ฅผ ํธ์ถํ๋ ๊ฒฝ์ฐ, ๋ฉ์๋ ์๊ทธ๋์ฒ์ throws๋ฅผ ์ฌ์ฉํ์ฌ ํธ์ถ์์๊ฒ ์์ธ๋ฅผ ์์ํ๊ฑฐ๋ ๋ฉ์๋ ๋ด์์ try-catch๋ฅผ ์ฌ์ฉํ์ฌ ํด๋น ์์ธ๋ฅผ ๋ฐ๋์ ์ฒ๋ฆฌํด์ผํ๋ค. (ํ์ค ์์ธ์ฒ๋ฆฌ, Custom Exception์ ํตํด์ ์ฒ๋ฆฌ.)
2. Unchecked Exception
๋ฐํ์ ์์ ์์ ๋ฐ์ํ๋ ์์ธ์ด๋ค. ์ปดํ์ผ๋ฌ๊ฐ ์ฒ๋ฆฌ ์ฌ๋ถ๋ฅผ ๊ฐ์ ํ์ง ์๋๋ค. ์๋ฐ์์๋ RuntimeException์ ์์ํ ์์ธ๋ค์ด ํด๋น๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ํ๋ก๊ทธ๋๋จธ์ ์ค์๋ ์ฝ๋ ์ค๋ฅ๋ก ์ธํด ๋ฐ์ํฉ๋๋ค. ⇒ ์ต๋ํ ๋ฐฉ์ง๋ฅผ ์ํ๋ฉด์ ์ฝ๋๋ฅผ ์ง์ผ๊ฒ ์ฃ ? ⇒ ํ์ง๋ง ํน์๋ ๋ชจ๋ฅด๋ ๊ฒฝ์ฐ๋ฅผ ๋๋นํด Unchecked Exception๋ ํ์ค ์์ธ์ฒ๋ฆฌ๋, Custom Exception์ ํตํด์ถฉ๋ถํ ์ ์ํ๊ณ ์ ๊ทน ์ฌ์ฉํด์ผ ํฉ๋๋ค..
๊ฐ๊ฐ ์ธ์ ์ฌ์ฉํด์ผ ํ ๊น?!
Checked Exception์ ์๋น์ค์ ์ธ๋ถ ์ฌ์ด์ ์ํธ ์์ฉ์ ํตํด์ ๋ฐ์๋๋ ์๋ฌ์ด๋ค. ๋ก๊ทธ์ธ ๋ก์ง ์ค ์์ธ, ๋คํธ์ํฌ ํต์ ์ค ์์ธ, ํ์ผ ์ ์ถ๋ ฅ ์์ธ, ์๋ field์ Data๋ฅผ ์ฃผ์ ํ๋ ค๋ค๊ฐ ์๊ธด ์์ธ, Mysql column์ด ๋ฐ์ ์ ์๋ ๊ธธ์ด์ ๋ฌธ์์ด์ ์ฃผ์ ํ ๋ ์๊ธฐ๋ ์์ธ ๋ฑ๋ฑ ํ์ธ ํ ์ ์๋ค. ์์ฒญ ๋ง๋ค๊ณ ์๊ฐํ์ง๋ง ํ๋์ฉ Custom Exception์ ์ค์ ํ์ฌ์ ์ฒ๋ฆฌํ๊ฑฐ๋ ์์ธก์ด ๊ฐ๋ฅํ ์ ์๋ค.!
Unchecked Exception์ ์ฝ๋ ์ค๋ฅ, ๋ ผ๋ฆฌ์ ๊ฒฐํจ ๋ฑ ํ๋ก๊ทธ๋๋จธ์ ์ค์๋ก ์ธํด ๋ฐ์ํ ์ ์๋ ์์ธ์ ์ ํฉํฉ๋๋ค. ์๋ฅผ ๋ค์ด, null ์ฐธ์กฐ ๋๋ ์๋ชป๋ ์ธ๋ฑ์ค ์ ๊ทผ ๋ฑ์ ํธ์ถ์๊ฐ ๋ฏธ๋ฆฌ ์์ธกํ๊ฑฐ๋ ์ฒ๋ฆฌํ ์ ์๊ธฐ ๋๋ฌธ์ Unchecked Exception์ผ๋ก ๋๋ ๊ฒ์ด ์ข๋ค.
์๋ฐ ์ Error ์ Exception์ ์ฐจ์ด.
Throwable
/ \
Error Exception
/ \
Checked Unchecked
1. Error
Error๋ Error์ ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ(OutOfMemoryError)์ด๋ ์คํ์ค๋ฒํ๋ก์ฐ(StackOverflowError)์ ๊ฐ์ด ์ผ๋จ ๋ฐ์ํ๋ฉด ๋ณต๊ตฌ ํ ์ ์๋ ์ฌ๊ฐํ ์ค๋ฅ์ด๊ณ ์์ธก์ด ๋ถ๊ฐ๋ฅํ ๋ ์์ด๋ค! ์ฆ JVM๋จ์ ์์คํ ๋ ๋ฒจ์์ ๋ฐ์ํ๋ ์ค๋ฅ์ธ ๊ฒ์ด๋ค! ๊ฐ๋ฐ์๊ฐ ๋์ฒํ๋ ๋ฐฉ๋ฒ์ ๊ฑฐ์ ๋ถ๊ฐ๋ฅ ํ๋ฉฐ, ํ๋ณต์ด ์ด๋ ค์ด ์ค๋ฅ, ์ ํ๋ฆฌ์ผ์ด์ ๋ณต๊ตฌ๋ฅผ ํ ์ ์๋ ์ฌ๊ฐํ ๋ฌธ์ ๋ฅผ ์ผ๊ธฐํ๋ค.
2. Exception
Exception์ ํ๋ก๊ทธ๋จ ์คํ ์ค ๋ฐ์ํ ์ ์๋ ์ค๋ฅ ์ํฉ์ ๋ํ๋ ๋๋ค. ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ํ๋ณต ๊ฐ๋ฅ์ฑ์ด ์์ผ๋ฉฐ, ํ๋ก๊ทธ๋จ ๋ด์์ ์์ธ ์ฒ๋ฆฌ๋ฅผ ํตํด ์ค๋ฅ ์ํฉ์ ์ ์ดํ ์ ์์ต๋๋ค
'BackEnd๐ > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Java] ๋์ผ์ฑ(Identity)๊ณผ ๋๋ฑ์ฑ(Equality) (2) | 2025.06.27 |
|---|---|
| [Java] hashCode()์์ equals()๋ฅผ ์ฌ์ ์ ํด์ผํ๋ ์ด์ (1) | 2025.06.27 |
| [Java / JDBC] JDBC๊ฐ ๋ฌด์์ผ๊น? (2) | 2025.01.20 |