Item 70. Checked Exception & RuntimeException
๋ณต๊ตฌํ ์ ์๋ ์ํฉ์๋ ๊ฒ์ฌ ์์ธ๋ฅผ, ํ๋ก๊ทธ๋๋ฐ ์ค๋ฅ์๋ ๋ฐํ์ ์์ธ๋ฅผ ์ฌ์ฉํ๋ผ.
์๋ฐ๋ ๋ฌธ์ ์ํฉ์ ์๋ฆฌ๋ ํ์ ์ผ๋ก ๊ฒ์ฌ ์์ธ(checked exception)์ ๋น๊ฒ์ฌ throwable์ธ ๋ฐํ์ ์์ธ(runtime exception), ์๋ฌ(error)๋ฅผ ์ ๊ณตํ๋ค. ์ธ์ ๋ฌด์์ ์ฌ์ฉํด์ผํ๋์ง๋ ์์ ํ ๋ฐ๋ผ์ผํ๋ ๊ฒ์ ์๋์ง๋ง ์ด๋์ ๋ ๋ฐ๋ผ์ผ ํ๋ ์ง์นจ๋ค์ด ์กด์ฌํ๋ค.
ํธ์ถํ๋ ์ชฝ์์ ๋ณต๊ตฌํ ์ ์๋ ์ํฉ: ๊ฒ์ฌ ์์ธ ์ฌ์ฉ
ํ๋ก๊ทธ๋๋ฐ ์ค๋ฅ ๋ฐ์: ๋ฐํ์ ์์ธ ์ฌ์ฉ
๋ ์ด์ ํ๋ก๊ทธ๋จ์ ์ํํ ์ ์๋ ์ํฉ: ์๋ฌ ์ฌ์ฉ
Checked Exception
๊ฒ์ฌ ์์ธ๋ ๋ฐ์ํ๋ฉด ๊ทธ ์์ธ๋ฅผ catch๋ก ์ก์ ์ฒ๋ฆฌํ๊ฑฐ๋ throws๋ก ๋์ ธ ํธ์ถํ๋ ์ชฝ์์ ์ฒ๋ฆฌํ๋๋ก ๊ฐ์ ํ ์ ์๋ค. ๊ฒ์ฌ ์์ธ๋ฅผ ๋์ ธ ํธ์ถํ๋ ์ชฝ์์ ์ฒ๋ฆฌํ๋๋ก ๊ฐ์ ํ๋ ๋ฐฉ๋ฒ์ ์ ํํ๋ฉด ํด๋น ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ ์ชฝ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์์ ๋ช ํํ๊ฒ ์๋ ค์ค ์ ์๋ค.
RuntimeException
ํ๋ก๊ทธ๋๋ฐ ์ค๋ฅ๋ฅผ ๋ํ๋ผ ๋๋ ๋ณดํต ๋ฐํ์ ์์ธ๋ฅผ ์ฌ์ฉํ๋ค. ๋ฐํ์ ์์ธ๋ ์๋ฌ๋ฅผ ์ก์ ํ์๊ฐ ์๊ฑฐ๋, ํต์์ ์ผ๋ก ์ก์ง ์๋๋ฐ, ์ด์ ๋ ์๋์ ๊ฐ๋ค.
๋ณต๊ตฌ๊ฐ ๋ถ๊ฐ๋ฅํ ์ํฉ์ผ ์ ์์
๋ ์คํํด๋ด์ผ ์๋ฏธ๊ฐ ์๊ฑฐ๋ ๋๋ณด๋ค๋ ์ค์ด ๋ง์ ์ ์์
๋๋ฌธ์ ๋ณดํต์ ๋ฐํ์ ์์ธ๋ฅผ ์ก์ง ์๊ณ , ํด๋น ์ค๋ ๋๋ ์ ์ ํ ์ค๋ฅ ๋ฉ์์ง๋ฅผ ๋ด๋ฑ์ผ๋ฉฐ ์ค๋จ๋๋๋ก ํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ด๋ค. ๋ง์ฝ ๋ณต๊ตฌํ ์ ์๋ค๊ณ ํ๋จ๋๋ค๋ฉด ๊ฒ์ฌ ์์ธ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ง๋ง, ํ์ ํ๊ธฐ ์ด๋ ค์ด ๊ฒฝ์ฐ์ ๋ฐํ์ ์์ธ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค.
Error
์๋ฌ๋ ๋ณดํต JVM์์ ๋ฐ์ํ๋ ๋ฌธ์ ๋ฅผ ๋ํ๋ด๋๋ฐ, Error ํด๋์ค๋ฅผ ์์ํ์ฌ ์ฌ์ฉํ๊ฑฐ๋ ์ง์ ๋์ง๋ ๊ฒ์ ์ข์ง ์๋ค.(AssertionError
๋ ์์ธ)
๋๋ฌธ์ ์ง์ ๊ตฌํํ๋ ๋น๊ฒ์ฌ throwable์ ๋ชจ๋ RuntimeException์ ํ์ ํด๋์ค๊ฐ ๋์ด์ผ ํ๋ค.
Throwable
Throwable์ ๊ฒ์ฌ ์์ธ, ๋ฐํ์ ์์ธ, ์๋ฌ์ ์ต์์ ํด๋์ค์ธ๋ฐ, ์ด ํด๋์ค๋ฅผ ์ง์ ์ฌ์ฉํ ์ผ์ ์์ผ๋, ์ฌ์ฉํ์ง ์๋๋ก ํ์.
Last updated
Was this helpful?